diff options
65 files changed, 987 insertions, 782 deletions
diff --git a/.gitignore b/.gitignore index fe504482b3..6acab19251 100644 --- a/.gitignore +++ b/.gitignore @@ -316,3 +316,10 @@ platform/windows/godot_res.res # Scons progress indicator .scons_node_count + +# ccls cache (https://github.com/MaskRay/ccls) +.ccls-cache/ + +# compile commands (https://clang.llvm.org/docs/JSONCompilationDatabase.html) +compile_commands.json + diff --git a/CHANGELOG.md b/CHANGELOG.md index b111eca07d..060a270426 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). -## [Unreleased] +## [3.1] - 2019-03-13 ### Added @@ -23,6 +23,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Support for RayCast shapes in kinematic bodies. - Support for synchronizing kinematic movement to physics, avoiding an one-frame delay. - WebSockets support using [libwebsockets](https://libwebsockets.org/). +- UPnP support using [MiniUPnP](http://miniupnp.free.fr). - [Revamped inspector.](https://godotengine.org/article/godot-gets-new-inspector) - Improved visualization and editing of numeric properties. - Vector and matrix types can now be edited directly (no pop-ups). @@ -128,6 +129,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Universal translation of touch input to mouse input. - AudioStreamPlayer, AudioStreamPlayer2D, and AudioStreamPlayer3D now have a pitch scale property. - Support for MIDI input. +- Support for audio capture from microphones. - `GROW_DIRECTION_BOTH` for Controls. - Selected tiles can be moved in the tile map editor. - The editor can now be configured to display the project window on the previous or next monitor (relative to the editor). @@ -165,6 +167,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - [Built-in vector types now use copy-on-write mode as originally intended](https://godotengine.org/article/why-we-broke-your-pr), resulting in increased engine performance. - The [mbedtls](https://tls.mbed.org/) library is now used instead of OpenSSL. +- [Renamed several core files](https://github.com/godotengine/godot/pull/25821). + - Third-party modules may have to be updated to reflect this. - SSL certificates are now bundled in exported projects unless a custom bundle is specified. - Improved buffer writing performance on Windows and Linux. - Removed many debugging prints in the console. @@ -183,10 +187,17 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Text editor themes are now sorted alphabetically in the selection dropdown. - The 3D manipulator gizmo now has a smoother, more detailed appearance. - The 3D viewport menu button now has a background to make it easier to read. +- QuadMeshes are now built using two triangles (6 vertices) instead of one quad (4 vertices). + - This was done because quads are deprecated in OpenGL. - Controls inside containers are no longer movable or resizable but can still be selected. - The `is` GDScript keyword can now be used to compare a value against built-in types. +- Exported variables with type hints are now always initialized. + - For example, `export(int) var a` will be initialized to `0`. - Named enums in GDScript no longer create script constants. - This means `enum Name { VALUE }` must now be accessed with `Name.VALUE` instead of `VALUE`. +- Cyclic references to other scripts with `preload()` are no longer allowed. + - `load()` should be used in at least one of the scripts instead. +- `switch`, `case` and `do` are no longer reserved identifiers in GDScript. - Shadowing variables from parent scopes is no longer allowed in GDScript. - Function parameters' default values can no longer depend on other parameters in GDScript. - Indentation guides are now displayed in a more subtle way in the script editor. @@ -209,6 +220,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ### Removed +- Removed the RtAudio backend on Windows in favor of WASAPI, which is the default since 3.0. - **macOS:** Support for 32-bit and fat binaries. ### Fixed @@ -220,6 +232,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - The animation editor time offset indicator no longer "walks" when resizing the editor. - Allow creation of a built-in GDScript file even if the filename suggested already exists. - Show tooltips in the editor when physics object picking is disabled. +- Button shortcuts can now be triggered by gamepad buttons. - Fix a serialization bug that could cause TSCN files to grow very large. - Gizmos are now properly hidden on scene load if the object they control is hidden. - Camera gizmos in the 3D viewport no longer look twice as wide as they actually are. @@ -231,6 +244,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - The Visual Studio Code external editor option now recognizes more binary names such as `code-oss`, making detection more reliable. - The `-ffast-math` flag is no longer used when compiling Godot, resulting in increased floating-point determinism. - Fix spelling of `apply_torque_impulse()` and deprecate the misspelled method. +- Escape sequences like `\n` and `\t` are now recognized in CSV translation files. - Remove spurious errors when using a PanoramaSky without textures. - The lightmap baker will now use all available cores on Windows. - Bullet physics now correctly calculates effective gravity on KinematicBodies. diff --git a/doc/classes/AnimatedTexture.xml b/doc/classes/AnimatedTexture.xml index 08cd79e78f..871ae1a701 100644 --- a/doc/classes/AnimatedTexture.xml +++ b/doc/classes/AnimatedTexture.xml @@ -4,7 +4,7 @@ Proxy texture for simple frame-based animations. </brief_description> <description> - [code]AnimatedTexture[/code] is a resource format for simple frame-based animations, where multiple frames textures can be chained automatically with a predefined delay for each frame. It's not a [Node], contrarily to [AnimationPlayer] or [AnimatedSprite], but has the advantage of being usable at any place where a [Texture] resource can be used, e.g. in a [TileSet]. + [code]AnimatedTexture[/code] 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]. 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. [code]AnimatedTexture[/code] currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one. </description> @@ -19,7 +19,7 @@ <argument index="0" name="frame" type="int"> </argument> <description> - Retrieves the delayed assigned to the given [code]frame[/code] ID. + Returns the given frame's delay value. </description> </method> <method name="get_frame_texture" qualifiers="const"> @@ -28,7 +28,7 @@ <argument index="0" name="frame" type="int"> </argument> <description> - Retrieves the [Texture] assigned to the given [code]frame[/code] ID. + Returns the given frame's [Texture]. </description> </method> <method name="set_frame_delay"> @@ -39,7 +39,7 @@ <argument index="1" name="delay" type="float"> </argument> <description> - Defines 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]. + 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]. 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: [codeblock] Frame 0: 0.5 s (1 / fps) @@ -57,15 +57,15 @@ <argument index="1" name="texture" type="Texture"> </argument> <description> - Assigns a [Texture] to the given [code]frame[/code] ID. IDs start at 0 (so the first frame has ID 0, and the last frame of the animation has ID [member frames] - 1). - You can define any frame texture up to [constant MAX_FRAMES], but keep in mind that only frames from 0 to [member frames] - 1 will be part of the animation. + 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. + 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. </description> </method> </methods> <members> <member name="fps" type="float" setter="set_fps" getter="get_fps"> - Number of 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]). Default value: 4. - For example, an animation with 8 frames, no frame delay and a [code]fps[/code] value of 2 will run over 4 seconds, with one frame each 0.5 seconds. + 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]). Default value: 4. + 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. </member> <member name="frames" type="int" setter="set_frames" getter="get_frames"> 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]. Default value: 1. diff --git a/doc/classes/AudioStreamSample.xml b/doc/classes/AudioStreamSample.xml index 77d5f14ab7..fdaa942018 100644 --- a/doc/classes/AudioStreamSample.xml +++ b/doc/classes/AudioStreamSample.xml @@ -12,11 +12,13 @@ </demos> <methods> <method name="save_to_wav"> - <return type="void"> + <return type="int" enum="Error"> </return> <argument index="0" name="path" type="String"> </argument> <description> + Saves the AudioStreamSample as a WAV file to [code]path[/code]. Samples with IMA ADPCM format can't be saved. + Note that a [code].wav[/code] extension is automatically appended to [code]path[/code] if it is missing. </description> </method> </methods> diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml index 9c78853cfe..d87b029676 100644 --- a/doc/classes/Dictionary.xml +++ b/doc/classes/Dictionary.xml @@ -6,8 +6,18 @@ <description> Dictionary type. Associative container which contains values referenced by unique keys. Dictionaries are always passed by reference. Erasing elements while iterating over them [b]is not supported[/b]. + Creating a dictionary: + [codeblock] + var d = {4: 5, "A key": "A value", 28: [1, 2, 3]} + [/codeblock] + To add a key to an existing dictionary, access it like an existing key and assign to it: + [codeblock] + d[4] = "hello" # Add integer 4 as a key and assign the String "hello" as its value. + d["Godot"] = 3.01 # Add String "Godot" as a key and assign the value 3.01 to it. + [/codeblock] </description> <tutorials> + <link>https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#dictionary</link> </tutorials> <demos> </demos> diff --git a/doc/classes/EditorSpatialGizmoPlugin.xml b/doc/classes/EditorSpatialGizmoPlugin.xml index a6c0413c19..d49a50893d 100644 --- a/doc/classes/EditorSpatialGizmoPlugin.xml +++ b/doc/classes/EditorSpatialGizmoPlugin.xml @@ -137,6 +137,12 @@ Override this method to provide the name that will appear in the gizmo visibility menu. </description> </method> + <method name="get_priority" qualifiers="virtual"> + <return type="String"> + </return> + <description> + </description> + </method> <method name="has_gizmo" qualifiers="virtual"> <return type="bool"> </return> diff --git a/doc/classes/KinematicBody2D.xml b/doc/classes/KinematicBody2D.xml index d5bfc91f66..8aaa7c4ace 100644 --- a/doc/classes/KinematicBody2D.xml +++ b/doc/classes/KinematicBody2D.xml @@ -27,6 +27,12 @@ </argument> <description> Returns a [KinematicCollision2D], which contains information about a collision that occurred during the last [method move_and_slide] call. 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). + Example usage: + [codeblock] + for i in get_slide_count(): + var collision = get_slide_collision(i) + print("Collided with: ", collision.collider.name) + [/codeblock] </description> </method> <method name="get_slide_count" qualifiers="const"> @@ -94,7 +100,7 @@ If the body is standing on a slope and the horizontal speed (relative to the floor's speed) goes below [code]slope_stop_min_velocity[/code], the body will stop completely. This prevents the body from sliding down slopes when you include gravity in [code]linear_velocity[/code]. When set to lower values, the body will not be able to stand still on steep slopes. If the body collides, it will change direction a maximum of [code]max_slides[/code] times before it stops. [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. - Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a slide collision occurred. To get more detailed information about collisions that occurred, use [method get_slide_collision]. + 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]. </description> </method> <method name="move_and_slide_with_snap"> diff --git a/doc/classes/Light2D.xml b/doc/classes/Light2D.xml index 0d754f1d4e..3cb785e7b8 100644 --- a/doc/classes/Light2D.xml +++ b/doc/classes/Light2D.xml @@ -7,6 +7,7 @@ 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). Note that Light2D can be used as a mask. </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/LightOccluder2D.xml b/doc/classes/LightOccluder2D.xml index 38b9054411..c7dfe9606b 100644 --- a/doc/classes/LightOccluder2D.xml +++ b/doc/classes/LightOccluder2D.xml @@ -7,6 +7,7 @@ Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must be provided with an [OccluderPolygon2D] in order for the shadow to be computed. </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/MeshInstance2D.xml b/doc/classes/MeshInstance2D.xml index 7f0136bf77..c26665b6b5 100644 --- a/doc/classes/MeshInstance2D.xml +++ b/doc/classes/MeshInstance2D.xml @@ -5,6 +5,7 @@ <description> </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_meshes.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/MultiMesh.xml b/doc/classes/MultiMesh.xml index 0cc9764e36..9bee8e2100 100644 --- a/doc/classes/MultiMesh.xml +++ b/doc/classes/MultiMesh.xml @@ -10,6 +10,7 @@ Since instances may have any behavior, the AABB used for visibility must be provided by the user. </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/MultiMeshInstance.xml b/doc/classes/MultiMeshInstance.xml index 5e021dfe9b..866ffffb5f 100644 --- a/doc/classes/MultiMeshInstance.xml +++ b/doc/classes/MultiMeshInstance.xml @@ -8,6 +8,8 @@ This is useful to optimize the rendering of a high amount of instances of a given mesh (for example tree in a forest or grass strands). </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link> + <link>http://docs.godotengine.org/en/latest/tutorials/3d/using_multi_mesh_instance.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/Particles.xml b/doc/classes/Particles.xml index b6e31d3576..5d80f32bc2 100644 --- a/doc/classes/Particles.xml +++ b/doc/classes/Particles.xml @@ -8,6 +8,7 @@ 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. </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/controlling_thousands_of_fish.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/Particles2D.xml b/doc/classes/Particles2D.xml index 91c1a0ca9b..53088e909e 100644 --- a/doc/classes/Particles2D.xml +++ b/doc/classes/Particles2D.xml @@ -8,6 +8,7 @@ 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. </description> <tutorials> + <link>https://docs.godotengine.org/en/latest/tutorials/2d/particle_systems_2d.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 74762df15e..77a695d070 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -323,6 +323,9 @@ <member name="display/mouse_cursor/custom_image_hotspot" type="Vector2" setter="" getter=""> Hotspot for the custom mouse cursor image. </member> + <member name="display/mouse_cursor/tooltip_position_offset" type="Vector2" setter="" getter=""> + Position offset for tooltips, relative to the hotspot of the mouse cursor. + </member> <member name="display/window/dpi/allow_hidpi" type="bool" setter="" getter=""> Allow HiDPI display on Windows and OSX. On Desktop Linux, this can't be enabled or disabled. </member> diff --git a/doc/classes/RayCast.xml b/doc/classes/RayCast.xml index 61f2737c01..22c70b789f 100644 --- a/doc/classes/RayCast.xml +++ b/doc/classes/RayCast.xml @@ -5,10 +5,10 @@ </brief_description> <description> 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. - RayCast 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. + 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. RayCast can be configured to report collisions with [Area]s ([member collide_with_areas]) and/or [PhysicsBody]s ([member collide_with_bodies]). Only enabled raycasts will be able to query the space and report collisions. - 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. + 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. </description> <tutorials> </tutorials> diff --git a/doc/classes/Rect2.xml b/doc/classes/Rect2.xml index 45bfd16cb8..248b3a6010 100644 --- a/doc/classes/Rect2.xml +++ b/doc/classes/Rect2.xml @@ -145,7 +145,7 @@ <argument index="0" name="b" type="Rect2"> </argument> <description> - Returns a larger Rect2 that contains this Rect2 and [code]with[/code]. + Returns a larger Rect2 that contains this Rect2 and [code]b[/code]. </description> </method> </methods> diff --git a/doc/classes/ShaderMaterial.xml b/doc/classes/ShaderMaterial.xml index 7491d22479..9b15c6e8b4 100644 --- a/doc/classes/ShaderMaterial.xml +++ b/doc/classes/ShaderMaterial.xml @@ -7,6 +7,7 @@ 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. </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/shading/index.html</link> </tutorials> <demos> </demos> diff --git a/doc/classes/Skeleton2D.xml b/doc/classes/Skeleton2D.xml index d40b8a2fc7..258525c396 100644 --- a/doc/classes/Skeleton2D.xml +++ b/doc/classes/Skeleton2D.xml @@ -5,6 +5,7 @@ <description> </description> <tutorials> + <link>http://docs.godotengine.org/en/latest/tutorials/animation/2d_skeletons.html</link> </tutorials> <demos> </demos> diff --git a/drivers/gles2/rasterizer_storage_gles2.cpp b/drivers/gles2/rasterizer_storage_gles2.cpp index ede4a3e23d..206679dda3 100644 --- a/drivers/gles2/rasterizer_storage_gles2.cpp +++ b/drivers/gles2/rasterizer_storage_gles2.cpp @@ -120,9 +120,13 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_ } break; case Image::FORMAT_RG8: { - - ERR_EXPLAIN("RG texture not supported"); - ERR_FAIL_V(image); + ERR_PRINT("RG texture not supported, converting to RGB8."); + if (image.is_valid()) + image->convert(Image::FORMAT_RGB8); + r_real_format = Image::FORMAT_RGB8; + r_gl_internal_format = GL_RGB; + r_gl_format = GL_RGB; + r_gl_type = GL_UNSIGNED_BYTE; } break; case Image::FORMAT_RGB8: { @@ -155,42 +159,57 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_ } break; case Image::FORMAT_RF: { if (!config.float_texture_supported) { - ERR_EXPLAIN("R float texture not supported"); - ERR_FAIL_V(image); + ERR_PRINT("R float texture not supported, converting to RGB8."); + if (image.is_valid()) + image->convert(Image::FORMAT_RGB8); + r_real_format = Image::FORMAT_RGB8; + r_gl_internal_format = GL_RGB; + r_gl_format = GL_RGB; + r_gl_type = GL_UNSIGNED_BYTE; + } else { + r_gl_internal_format = GL_ALPHA; + r_gl_format = GL_ALPHA; + r_gl_type = GL_FLOAT; } - - r_gl_internal_format = GL_ALPHA; - r_gl_format = GL_ALPHA; - r_gl_type = GL_FLOAT; } break; case Image::FORMAT_RGF: { - ERR_EXPLAIN("RG float texture not supported"); - ERR_FAIL_V(image); - + ERR_PRINT("RG float texture not supported, converting to RGB8."); + if (image.is_valid()) + image->convert(Image::FORMAT_RGB8); + r_real_format = Image::FORMAT_RGB8; + r_gl_internal_format = GL_RGB; + r_gl_format = GL_RGB; + r_gl_type = GL_UNSIGNED_BYTE; } break; case Image::FORMAT_RGBF: { if (!config.float_texture_supported) { - - ERR_EXPLAIN("RGB float texture not supported"); - ERR_FAIL_V(image); + ERR_PRINT("RGB float texture not supported, converting to RGB8."); + if (image.is_valid()) + image->convert(Image::FORMAT_RGB8); + r_real_format = Image::FORMAT_RGB8; + r_gl_internal_format = GL_RGB; + r_gl_format = GL_RGB; + r_gl_type = GL_UNSIGNED_BYTE; + } else { + r_gl_internal_format = GL_RGB; + r_gl_format = GL_RGB; + r_gl_type = GL_FLOAT; } - - r_gl_internal_format = GL_RGB; - r_gl_format = GL_RGB; - r_gl_type = GL_FLOAT; - } break; case Image::FORMAT_RGBAF: { if (!config.float_texture_supported) { - - ERR_EXPLAIN("RGBA float texture not supported"); - ERR_FAIL_V(image); + ERR_PRINT("RGBA float texture not supported, converting to RGBA8."); + if (image.is_valid()) + image->convert(Image::FORMAT_RGBA8); + r_real_format = Image::FORMAT_RGBA8; + r_gl_internal_format = GL_RGBA; + r_gl_format = GL_RGBA; + r_gl_type = GL_UNSIGNED_BYTE; + } else { + r_gl_internal_format = GL_RGBA; + r_gl_format = GL_RGBA; + r_gl_type = GL_FLOAT; } - - r_gl_internal_format = GL_RGBA; - r_gl_format = GL_RGBA; - r_gl_type = GL_FLOAT; - } break; case Image::FORMAT_RH: { need_decompress = true; @@ -5469,7 +5488,9 @@ void RasterizerStorageGLES2::initialize() { #ifdef GLES_OVER_GL //this needs to be enabled manually in OpenGL 2.1 - glEnable(_EXT_TEXTURE_CUBE_MAP_SEAMLESS); + if (config.extensions.has("GL_ARB_seamless_cube_map")) { + glEnable(_EXT_TEXTURE_CUBE_MAP_SEAMLESS); + } glEnable(GL_POINT_SPRITE); glEnable(GL_VERTEX_PROGRAM_POINT_SIZE); #endif diff --git a/drivers/gles2/shaders/canvas.glsl b/drivers/gles2/shaders/canvas.glsl index f72a0d288b..7ba2856216 100644 --- a/drivers/gles2/shaders/canvas.glsl +++ b/drivers/gles2/shaders/canvas.glsl @@ -220,29 +220,25 @@ VERTEX_SHADER_CODE /* clang-format off */ [fragment] +// texture2DLodEXT and textureCubeLodEXT are fragment shader specific. +// Do not copy these defines in the vertex section. #ifndef USE_GLES_OVER_GL - #ifdef GL_EXT_shader_texture_lod #extension GL_EXT_shader_texture_lod : enable #define texture2DLod(img, coord, lod) texture2DLodEXT(img, coord, lod) #define textureCubeLod(img, coord, lod) textureCubeLodEXT(img, coord, lod) #endif - -#endif +#endif // !USE_GLES_OVER_GL #ifdef GL_ARB_shader_texture_lod #extension GL_ARB_shader_texture_lod : enable #endif - #if !defined(GL_EXT_shader_texture_lod) && !defined(GL_ARB_shader_texture_lod) #define texture2DLod(img, coord, lod) texture2D(img, coord, lod) #define textureCubeLod(img, coord, lod) textureCube(img, coord, lod) #endif - - - #ifdef USE_GLES_OVER_GL #define lowp #define mediump diff --git a/drivers/gles2/shaders/cubemap_filter.glsl b/drivers/gles2/shaders/cubemap_filter.glsl index a6902836ed..db3d8b3a1b 100644 --- a/drivers/gles2/shaders/cubemap_filter.glsl +++ b/drivers/gles2/shaders/cubemap_filter.glsl @@ -25,15 +25,15 @@ void main() { /* clang-format off */ [fragment] +// texture2DLodEXT and textureCubeLodEXT are fragment shader specific. +// Do not copy these defines in the vertex section. #ifndef USE_GLES_OVER_GL - #ifdef GL_EXT_shader_texture_lod #extension GL_EXT_shader_texture_lod : enable #define texture2DLod(img, coord, lod) texture2DLodEXT(img, coord, lod) #define textureCubeLod(img, coord, lod) textureCubeLodEXT(img, coord, lod) #endif - -#endif +#endif // !USE_GLES_OVER_GL #ifdef GL_ARB_shader_texture_lod #extension GL_ARB_shader_texture_lod : enable @@ -44,8 +44,6 @@ void main() { #define textureCubeLod(img, coord, lod) textureCube(img, coord, lod) #endif - - #ifdef USE_GLES_OVER_GL #define lowp #define mediump diff --git a/drivers/gles2/shaders/scene.glsl b/drivers/gles2/shaders/scene.glsl index 3b0bca982d..7e59b63935 100644 --- a/drivers/gles2/shaders/scene.glsl +++ b/drivers/gles2/shaders/scene.glsl @@ -675,15 +675,15 @@ VERTEX_SHADER_CODE /* clang-format off */ [fragment] +// texture2DLodEXT and textureCubeLodEXT are fragment shader specific. +// Do not copy these defines in the vertex section. #ifndef USE_GLES_OVER_GL - #ifdef GL_EXT_shader_texture_lod #extension GL_EXT_shader_texture_lod : enable #define texture2DLod(img, coord, lod) texture2DLodEXT(img, coord, lod) #define textureCubeLod(img, coord, lod) textureCubeLodEXT(img, coord, lod) #endif - -#endif +#endif // !USE_GLES_OVER_GL #ifdef GL_ARB_shader_texture_lod #extension GL_ARB_shader_texture_lod : enable @@ -694,9 +694,6 @@ VERTEX_SHADER_CODE #define textureCubeLod(img, coord, lod) textureCube(img, coord, lod) #endif - - - #ifdef USE_GLES_OVER_GL #define lowp #define mediump diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index 0c7d8c53d4..309f8b506c 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -2349,10 +2349,6 @@ void RasterizerSceneGLES3::_add_geometry_with_material(RasterizerStorageGLES3::G state.used_screen_texture = true; } - if (p_material->shader->spatial.uses_depth_texture) { - state.used_depth_texture = true; - } - if (p_depth_pass) { if (has_blend_alpha || p_material->shader->spatial.uses_depth_texture || (has_base_alpha && p_material->shader->spatial.depth_draw_mode != RasterizerStorageGLES3::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS) || p_material->shader->spatial.depth_draw_mode == RasterizerStorageGLES3::Shader::Spatial::DEPTH_DRAW_NEVER || p_material->shader->spatial.no_depth_test) @@ -3169,7 +3165,7 @@ void RasterizerSceneGLES3::_fill_render_list(InstanceBase **p_cull_result, int p current_material_index = 0; state.used_sss = false; state.used_screen_texture = false; - state.used_depth_texture = false; + //fill list for (int i = 0; i < p_cull_count; i++) { @@ -3634,7 +3630,6 @@ void RasterizerSceneGLES3::_post_process(Environment *env, const CameraMatrix &p if (storage->frame.current_rt->buffers.active) { //transfer to effect buffer if using buffers, also resolve MSAA - glReadBuffer(GL_COLOR_ATTACHMENT0); glBindFramebuffer(GL_READ_FRAMEBUFFER, storage->frame.current_rt->buffers.fbo); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, storage->frame.current_rt->effects.mip_maps[0].sizes[0].fbo); glBlitFramebuffer(0, 0, storage->frame.current_rt->width, storage->frame.current_rt->height, 0, 0, storage->frame.current_rt->width, storage->frame.current_rt->height, GL_COLOR_BUFFER_BIT, GL_NEAREST); @@ -4191,7 +4186,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const glColorMask(1, 1, 1, 1); - if (state.used_contact_shadows || state.used_depth_texture) { + if (state.used_contact_shadows) { glBindFramebuffer(GL_READ_FRAMEBUFFER, storage->frame.current_rt->buffers.fbo); glReadBuffer(GL_COLOR_ATTACHMENT0); diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index 3ac5ade721..56e378d7fa 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -204,7 +204,7 @@ public: bool cull_disabled; bool used_sss; bool used_screen_texture; - bool used_depth_texture; + bool used_depth_prepass; bool used_depth_prepass_and_resolved; diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 1e03adc219..6140412a32 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -136,10 +136,10 @@ void EditorNode::_update_scene_tabs() { Ref<Texture> script_icon = gui_base->get_icon("Script", "EditorIcons"); for (int i = 0; i < editor_data.get_edited_scene_count(); i++) { - String type = editor_data.get_scene_type(i); + Node *type_node = editor_data.get_edited_scene_root(i); Ref<Texture> icon; - if (type != String()) { - icon = get_class_icon(type, "Node"); + if (type_node) { + icon = EditorNode::get_singleton()->get_object_icon(type_node, "Node"); } int current = editor_data.get_edited_scene(); @@ -4232,7 +4232,13 @@ bool EditorNode::are_bottom_panels_hidden() const { void EditorNode::hide_bottom_panel() { - _bottom_panel_switch(false, 0); + for (int i = 0; i < bottom_panel_items.size(); i++) { + + if (bottom_panel_items[i].control->is_visible()) { + _bottom_panel_switch(false, i); + break; + } + } } void EditorNode::make_bottom_panel_item_visible(Control *p_item) { @@ -4269,7 +4275,7 @@ void EditorNode::remove_bottom_panel_item(Control *p_item) { if (bottom_panel_items[i].control == p_item) { if (p_item->is_visible_in_tree()) { - _bottom_panel_switch(false, 0); + _bottom_panel_switch(false, i); } bottom_panel_vb->remove_child(bottom_panel_items[i].control); bottom_panel_hb_editors->remove_child(bottom_panel_items[i].button); @@ -4289,6 +4295,10 @@ void EditorNode::_bottom_panel_switch(bool p_enable, int p_idx) { ERR_FAIL_INDEX(p_idx, bottom_panel_items.size()); + if (bottom_panel_items[p_idx].control->is_visible() == p_enable) { + return; + } + if (p_enable) { for (int i = 0; i < bottom_panel_items.size(); i++) { @@ -4309,11 +4319,8 @@ void EditorNode::_bottom_panel_switch(bool p_enable, int p_idx) { } else { bottom_panel->add_style_override("panel", gui_base->get_stylebox("panel", "TabContainer")); - for (int i = 0; i < bottom_panel_items.size(); i++) { - - bottom_panel_items[i].button->set_pressed(false); - bottom_panel_items[i].control->set_visible(false); - } + bottom_panel_items[p_idx].button->set_pressed(false); + bottom_panel_items[p_idx].control->set_visible(false); center_split->set_dragger_visibility(SplitContainer::DRAGGER_HIDDEN); center_split->set_collapsed(true); bottom_panel_raise->hide(); diff --git a/editor/plugins/path_editor_plugin.cpp b/editor/plugins/path_editor_plugin.cpp index 6efa76ef80..88dc258c5f 100644 --- a/editor/plugins/path_editor_plugin.cpp +++ b/editor/plugins/path_editor_plugin.cpp @@ -638,6 +638,10 @@ String PathSpatialGizmoPlugin::get_name() const { return "Path"; } +int PathSpatialGizmoPlugin::get_priority() const { + return -1; +} + PathSpatialGizmoPlugin::PathSpatialGizmoPlugin() { Color path_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/path", Color(0.5, 0.5, 1.0, 0.8)); diff --git a/editor/plugins/path_editor_plugin.h b/editor/plugins/path_editor_plugin.h index ce3d3799d4..5482d09377 100644 --- a/editor/plugins/path_editor_plugin.h +++ b/editor/plugins/path_editor_plugin.h @@ -62,6 +62,7 @@ protected: public: String get_name() const; + int get_priority() const; PathSpatialGizmoPlugin(); }; diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index ed11d26f25..765d198f79 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -1021,7 +1021,7 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { } _edit.mouse_pos = b->get_position(); - _edit.snap = false; + _edit.snap = spatial_editor->is_snap_enabled(); _edit.mode = TRANSFORM_NONE; //gizmo has priority over everything @@ -1772,7 +1772,7 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { if (ED_IS_SHORTCUT("spatial_editor/snap", p_event)) { if (_edit.mode != TRANSFORM_NONE) { - _edit.snap = true; + _edit.snap = !_edit.snap; } } if (ED_IS_SHORTCUT("spatial_editor/bottom_view", p_event)) { @@ -4117,10 +4117,10 @@ Dictionary SpatialEditor::get_state() const { d["zfar"] = get_zfar(); Dictionary gizmos_status; - for (int i = 0; i < gizmo_plugins.size(); i++) { - if (!gizmo_plugins[i]->can_be_hidden()) continue; + for (int i = 0; i < gizmo_plugins_by_name.size(); i++) { + if (!gizmo_plugins_by_name[i]->can_be_hidden()) continue; int state = gizmos_menu->get_item_state(gizmos_menu->get_item_index(i)); - String name = gizmo_plugins[i]->get_name(); + String name = gizmo_plugins_by_name[i]->get_name(); gizmos_status[name] = state; } @@ -4170,9 +4170,13 @@ void SpatialEditor::set_state(const Dictionary &p_state) { if (d.has("viewports")) { Array vp = d["viewports"]; - ERR_FAIL_COND(vp.size() > 4); + uint32_t vp_size = static_cast<uint32_t>(vp.size()); + if (vp_size > VIEWPORTS_COUNT) { + WARN_PRINT("Ignoring superfluous viewport settings from spatial editor state.") + vp_size = VIEWPORTS_COUNT; + } - for (uint32_t i = 0; i < VIEWPORTS_COUNT; i++) { + for (uint32_t i = 0; i < vp_size; i++) { viewports[i]->set_state(vp[i]); } } @@ -4205,32 +4209,19 @@ void SpatialEditor::set_state(const Dictionary &p_state) { List<Variant> keys; gizmos_status.get_key_list(&keys); - for (int j = 0; j < gizmo_plugins.size(); ++j) { - if (!gizmo_plugins[j]->can_be_hidden()) continue; - int state = EditorSpatialGizmoPlugin::ON_TOP; + for (int j = 0; j < gizmo_plugins_by_name.size(); ++j) { + if (!gizmo_plugins_by_name[j]->can_be_hidden()) continue; + int state = EditorSpatialGizmoPlugin::VISIBLE; for (int i = 0; i < keys.size(); i++) { - if (gizmo_plugins.write[j]->get_name() == keys[i]) { + if (gizmo_plugins_by_name.write[j]->get_name() == keys[i]) { state = gizmos_status[keys[i]]; + break; } } - const int idx = gizmos_menu->get_item_index(j); - - gizmos_menu->set_item_multistate(idx, state); - gizmo_plugins.write[j]->set_state(state); - - switch (state) { - case EditorSpatialGizmoPlugin::VISIBLE: - gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_visible")); - break; - case EditorSpatialGizmoPlugin::ON_TOP: - gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_xray")); - break; - case EditorSpatialGizmoPlugin::HIDDEN: - gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_hidden")); - break; - } + gizmo_plugins_by_name.write[j]->set_state(state); } + _update_gizmos_menu(); } } @@ -4344,7 +4335,7 @@ void SpatialEditor::_menu_gizmo_toggled(int p_option) { break; } - gizmo_plugins.write[p_option]->set_state(state); + gizmo_plugins_by_name.write[p_option]->set_state(state); update_all_gizmos(); } @@ -4840,30 +4831,46 @@ void SpatialEditor::_init_indicators() { _generate_selection_box(); } -struct _GizmoPluginComparator { - - bool operator()(const Ref<EditorSpatialGizmoPlugin> &p_a, const Ref<EditorSpatialGizmoPlugin> &p_b) const { - return p_a->get_name() < p_b->get_name(); - } -}; - void SpatialEditor::_update_gizmos_menu() { gizmos_menu->clear(); - gizmo_plugins.sort_custom<_GizmoPluginComparator>(); - for (int i = 0; i < gizmo_plugins.size(); ++i) { - if (!gizmo_plugins[i]->can_be_hidden()) continue; - String plugin_name = gizmo_plugins[i]->get_name(); - gizmos_menu->add_multistate_item(TTR(plugin_name), 3, EditorSpatialGizmoPlugin::VISIBLE, i); - gizmos_menu->set_item_icon(gizmos_menu->get_item_index(i), gizmos_menu->get_icon("visibility_visible")); + for (int i = 0; i < gizmo_plugins_by_name.size(); ++i) { + if (!gizmo_plugins_by_name[i]->can_be_hidden()) continue; + String plugin_name = gizmo_plugins_by_name[i]->get_name(); + const int plugin_state = gizmo_plugins_by_name[i]->get_state(); + gizmos_menu->add_multistate_item(TTR(plugin_name), 3, plugin_state, i); + const int idx = gizmos_menu->get_item_index(i); + switch (plugin_state) { + case EditorSpatialGizmoPlugin::VISIBLE: + gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_visible")); + break; + case EditorSpatialGizmoPlugin::ON_TOP: + gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_xray")); + break; + case EditorSpatialGizmoPlugin::HIDDEN: + gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_hidden")); + break; + } } } void SpatialEditor::_update_gizmos_menu_theme() { - for (int i = 0; i < gizmo_plugins.size(); ++i) { - if (!gizmo_plugins[i]->can_be_hidden()) continue; - gizmos_menu->set_item_icon(gizmos_menu->get_item_index(i), gizmos_menu->get_icon("visibility_visible")); + for (int i = 0; i < gizmo_plugins_by_name.size(); ++i) { + if (!gizmo_plugins_by_name[i]->can_be_hidden()) continue; + const int plugin_state = gizmo_plugins_by_name[i]->get_state(); + const int idx = gizmos_menu->get_item_index(i); + switch (plugin_state) { + case EditorSpatialGizmoPlugin::VISIBLE: + gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_visible")); + break; + case EditorSpatialGizmoPlugin::ON_TOP: + gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_xray")); + break; + case EditorSpatialGizmoPlugin::HIDDEN: + gizmos_menu->set_item_icon(idx, gizmos_menu->get_icon("visibility_hidden")); + break; + } } } @@ -5225,8 +5232,8 @@ void SpatialEditor::_request_gizmo(Object *p_obj) { Ref<EditorSpatialGizmo> seg; - for (int i = 0; i < gizmo_plugins.size(); ++i) { - seg = gizmo_plugins.write[i]->get_gizmo(sp); + for (int i = 0; i < gizmo_plugins_by_priority.size(); ++i) { + seg = gizmo_plugins_by_priority.write[i]->get_gizmo(sp); if (seg.is_valid()) { sp->set_gizmo(seg); @@ -5751,15 +5758,39 @@ void SpatialEditorPlugin::snap_cursor_to_plane(const Plane &p_plane) { spatial_editor->snap_cursor_to_plane(p_plane); } +struct _GizmoPluginPriorityComparator { + + bool operator()(const Ref<EditorSpatialGizmoPlugin> &p_a, const Ref<EditorSpatialGizmoPlugin> &p_b) const { + if (p_a->get_priority() == p_b->get_priority()) { + return p_a->get_name() < p_b->get_name(); + } + return p_a->get_priority() > p_b->get_priority(); + } +}; + +struct _GizmoPluginNameComparator { + + bool operator()(const Ref<EditorSpatialGizmoPlugin> &p_a, const Ref<EditorSpatialGizmoPlugin> &p_b) const { + return p_a->get_name() < p_b->get_name(); + } +}; + void SpatialEditor::add_gizmo_plugin(Ref<EditorSpatialGizmoPlugin> p_plugin) { ERR_FAIL_NULL(p_plugin.ptr()); - gizmo_plugins.push_back(p_plugin); + + gizmo_plugins_by_priority.push_back(p_plugin); + gizmo_plugins_by_priority.sort_custom<_GizmoPluginPriorityComparator>(); + + gizmo_plugins_by_name.push_back(p_plugin); + gizmo_plugins_by_name.sort_custom<_GizmoPluginNameComparator>(); + _update_gizmos_menu(); SpatialEditor::get_singleton()->update_all_gizmos(); } void SpatialEditor::remove_gizmo_plugin(Ref<EditorSpatialGizmoPlugin> p_plugin) { - gizmo_plugins.erase(p_plugin); + gizmo_plugins_by_priority.erase(p_plugin); + gizmo_plugins_by_name.erase(p_plugin); _update_gizmos_menu(); } @@ -5912,6 +5943,13 @@ String EditorSpatialGizmoPlugin::get_name() const { return TTR("Nameless gizmo"); } +int EditorSpatialGizmoPlugin::get_priority() const { + if (get_script_instance() && get_script_instance()->has_method("get_priority")) { + return get_script_instance()->call("get_priority"); + } + return 0; +} + Ref<EditorSpatialGizmo> EditorSpatialGizmoPlugin::get_gizmo(Spatial *p_spatial) { if (get_script_instance() && get_script_instance()->has_method("get_gizmo")) { @@ -5944,6 +5982,7 @@ void EditorSpatialGizmoPlugin::_bind_methods() { ClassDB::bind_method(D_METHOD("get_material", "name", "gizmo"), &EditorSpatialGizmoPlugin::get_material); //, DEFVAL(Ref<EditorSpatialGizmo>())); BIND_VMETHOD(MethodInfo(Variant::STRING, "get_name")); + BIND_VMETHOD(MethodInfo(Variant::STRING, "get_priority")); BIND_VMETHOD(MethodInfo(Variant::BOOL, "can_be_hidden")); BIND_VMETHOD(MethodInfo(Variant::BOOL, "is_selectable_when_hidden")); @@ -6043,6 +6082,10 @@ void EditorSpatialGizmoPlugin::set_state(int p_state) { } } +int EditorSpatialGizmoPlugin::get_state() const { + return current_state; +} + void EditorSpatialGizmoPlugin::unregister_gizmo(EditorSpatialGizmo *p_gizmo) { current_gizmos.erase(p_gizmo); } diff --git a/editor/plugins/spatial_editor_plugin.h b/editor/plugins/spatial_editor_plugin.h index 6256b8b055..4a9d34a7f7 100644 --- a/editor/plugins/spatial_editor_plugin.h +++ b/editor/plugins/spatial_editor_plugin.h @@ -639,7 +639,8 @@ private: static SpatialEditor *singleton; void _node_removed(Node *p_node); - Vector<Ref<EditorSpatialGizmoPlugin> > gizmo_plugins; + Vector<Ref<EditorSpatialGizmoPlugin> > gizmo_plugins_by_priority; + Vector<Ref<EditorSpatialGizmoPlugin> > gizmo_plugins_by_name; void _register_all_gizmos(); @@ -782,6 +783,7 @@ public: Ref<SpatialMaterial> get_material(const String &p_name, const Ref<EditorSpatialGizmo> &p_gizmo = Ref<EditorSpatialGizmo>()); virtual String get_name() const; + virtual int get_priority() const; virtual bool can_be_hidden() const; virtual bool is_selectable_when_hidden() const; @@ -794,6 +796,7 @@ public: Ref<EditorSpatialGizmo> get_gizmo(Spatial *p_spatial); void set_state(int p_state); + int get_state() const; void unregister_gizmo(EditorSpatialGizmo *p_gizmo); EditorSpatialGizmoPlugin(); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 1c6359a46b..21ba6efb82 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -703,7 +703,7 @@ void ProjectSettingsEditor::_update_actions() { item->add_button(2, get_icon("Add", "EditorIcons"), 1, false, TTR("Add Event")); if (!ProjectSettings::get_singleton()->get_input_presets().find(pi.name)) { item->add_button(2, get_icon("Remove", "EditorIcons"), 2, false, TTR("Remove")); - item->set_editable(2, true); + item->set_editable(0, true); } for (int i = 0; i < events.size(); i++) { diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp index 0a8e7ea779..2e06a903aa 100644 --- a/editor/spatial_editor_gizmos.cpp +++ b/editor/spatial_editor_gizmos.cpp @@ -805,6 +805,10 @@ String LightSpatialGizmoPlugin::get_name() const { return "Lights"; } +int LightSpatialGizmoPlugin::get_priority() const { + return -1; +} + String LightSpatialGizmoPlugin::get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const { if (p_idx == 0) @@ -1062,6 +1066,10 @@ String AudioStreamPlayer3DSpatialGizmoPlugin::get_name() const { return "AudioStreamPlayer3D"; } +int AudioStreamPlayer3DSpatialGizmoPlugin::get_priority() const { + return -1; +} + String AudioStreamPlayer3DSpatialGizmoPlugin::get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const { return "Emission Radius"; @@ -1202,6 +1210,10 @@ String CameraSpatialGizmoPlugin::get_name() const { return "Camera"; } +int CameraSpatialGizmoPlugin::get_priority() const { + return -1; +} + String CameraSpatialGizmoPlugin::get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const { Camera *camera = Object::cast_to<Camera>(p_gizmo->get_spatial_node()); @@ -1425,6 +1437,10 @@ String MeshInstanceSpatialGizmoPlugin::get_name() const { return "MeshInstance"; } +int MeshInstanceSpatialGizmoPlugin::get_priority() const { + return -1; +} + bool MeshInstanceSpatialGizmoPlugin::can_be_hidden() const { return false; } @@ -1458,6 +1474,10 @@ String Sprite3DSpatialGizmoPlugin::get_name() const { return "Sprite3D"; } +int Sprite3DSpatialGizmoPlugin::get_priority() const { + return -1; +} + bool Sprite3DSpatialGizmoPlugin::can_be_hidden() const { return false; } @@ -1517,6 +1537,10 @@ String Position3DSpatialGizmoPlugin::get_name() const { return "Position3D"; } +int Position3DSpatialGizmoPlugin::get_priority() const { + return -1; +} + void Position3DSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { p_gizmo->clear(); @@ -1540,6 +1564,10 @@ String SkeletonSpatialGizmoPlugin::get_name() const { return "Skeleton"; } +int SkeletonSpatialGizmoPlugin::get_priority() const { + return -1; +} + void SkeletonSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { Skeleton *skel = Object::cast_to<Skeleton>(p_gizmo->get_spatial_node()); @@ -1743,6 +1771,10 @@ String PhysicalBoneSpatialGizmoPlugin::get_name() const { return "PhysicalBones"; } +int PhysicalBoneSpatialGizmoPlugin::get_priority() const { + return -1; +} + void PhysicalBoneSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { p_gizmo->clear(); @@ -1982,6 +2014,10 @@ String RayCastSpatialGizmoPlugin::get_name() const { return "RayCast"; } +int RayCastSpatialGizmoPlugin::get_priority() const { + return -1; +} + void RayCastSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { RayCast *raycast = Object::cast_to<RayCast>(p_gizmo->get_spatial_node()); @@ -2031,6 +2067,10 @@ String SpringArmSpatialGizmoPlugin::get_name() const { return "SpringArm"; } +int SpringArmSpatialGizmoPlugin::get_priority() const { + return -1; +} + ///// VehicleWheelSpatialGizmoPlugin::VehicleWheelSpatialGizmoPlugin() { @@ -2047,6 +2087,10 @@ String VehicleWheelSpatialGizmoPlugin::get_name() const { return "VehicleWheel"; } +int VehicleWheelSpatialGizmoPlugin::get_priority() const { + return -1; +} + void VehicleWheelSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { VehicleWheel *car_wheel = Object::cast_to<VehicleWheel>(p_gizmo->get_spatial_node()); @@ -2117,6 +2161,10 @@ String SoftBodySpatialGizmoPlugin::get_name() const { return "SoftBody"; } +int SoftBodySpatialGizmoPlugin::get_priority() const { + return -1; +} + bool SoftBodySpatialGizmoPlugin::is_selectable_when_hidden() const { return true; } @@ -2189,6 +2237,10 @@ String VisibilityNotifierGizmoPlugin::get_name() const { return "VisibilityNotifier"; } +int VisibilityNotifierGizmoPlugin::get_priority() const { + return -1; +} + String VisibilityNotifierGizmoPlugin::get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const { switch (p_idx) { @@ -2339,6 +2391,10 @@ String ParticlesGizmoPlugin::get_name() const { return "Particles"; } +int ParticlesGizmoPlugin::get_priority() const { + return -1; +} + bool ParticlesGizmoPlugin::is_selectable_when_hidden() const { return true; } @@ -2498,6 +2554,10 @@ String ReflectionProbeGizmoPlugin::get_name() const { return "ReflectionProbe"; } +int ReflectionProbeGizmoPlugin::get_priority() const { + return -1; +} + String ReflectionProbeGizmoPlugin::get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const { switch (p_idx) { @@ -2674,6 +2734,10 @@ String GIProbeGizmoPlugin::get_name() const { return "GIProbe"; } +int GIProbeGizmoPlugin::get_priority() const { + return -1; +} + String GIProbeGizmoPlugin::get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const { switch (p_idx) { @@ -2908,6 +2972,10 @@ String BakedIndirectLightGizmoPlugin::get_name() const { return "BakedLightmap"; } +int BakedIndirectLightGizmoPlugin::get_priority() const { + return -1; +} + void BakedIndirectLightGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { BakedLightmap *baker = Object::cast_to<BakedLightmap>(p_gizmo->get_spatial_node()); @@ -2965,6 +3033,10 @@ String CollisionShapeSpatialGizmoPlugin::get_name() const { return "CollisionShape"; } +int CollisionShapeSpatialGizmoPlugin::get_priority() const { + return -1; +} + String CollisionShapeSpatialGizmoPlugin::get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const { const CollisionShape *cs = Object::cast_to<CollisionShape>(p_gizmo->get_spatial_node()); @@ -3557,6 +3629,10 @@ String CollisionPolygonSpatialGizmoPlugin::get_name() const { return "CollisionPolygon"; } +int CollisionPolygonSpatialGizmoPlugin::get_priority() const { + return -1; +} + void CollisionPolygonSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { CollisionPolygon *polygon = Object::cast_to<CollisionPolygon>(p_gizmo->get_spatial_node()); @@ -3601,6 +3677,10 @@ String NavigationMeshSpatialGizmoPlugin::get_name() const { return "NavigationMeshInstance"; } +int NavigationMeshSpatialGizmoPlugin::get_priority() const { + return -1; +} + void NavigationMeshSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { NavigationMeshInstance *navmesh = Object::cast_to<NavigationMeshInstance>(p_gizmo->get_spatial_node()); @@ -3961,6 +4041,10 @@ String JointSpatialGizmoPlugin::get_name() const { return "Joints"; } +int JointSpatialGizmoPlugin::get_priority() const { + return -1; +} + void JointSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { Joint *joint = Object::cast_to<Joint>(p_gizmo->get_spatial_node()); diff --git a/editor/spatial_editor_gizmos.h b/editor/spatial_editor_gizmos.h index 0d89fb0f03..3661df4bad 100644 --- a/editor/spatial_editor_gizmos.h +++ b/editor/spatial_editor_gizmos.h @@ -43,6 +43,7 @@ class LightSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -60,6 +61,7 @@ class AudioStreamPlayer3DSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -77,6 +79,7 @@ class CameraSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -94,6 +97,7 @@ class MeshInstanceSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; bool can_be_hidden() const; void redraw(EditorSpatialGizmo *p_gizmo); @@ -107,6 +111,7 @@ class Sprite3DSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; bool can_be_hidden() const; void redraw(EditorSpatialGizmo *p_gizmo); @@ -123,6 +128,7 @@ class Position3DSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); Position3DSpatialGizmoPlugin(); @@ -135,6 +141,7 @@ class SkeletonSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); SkeletonSpatialGizmoPlugin(); @@ -147,6 +154,7 @@ class PhysicalBoneSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); PhysicalBoneSpatialGizmoPlugin(); @@ -172,6 +180,7 @@ class RayCastSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); RayCastSpatialGizmoPlugin(); @@ -184,6 +193,7 @@ class SpringArmSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); SpringArmSpatialGizmoPlugin(); @@ -196,6 +206,7 @@ class VehicleWheelSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); VehicleWheelSpatialGizmoPlugin(); @@ -208,6 +219,7 @@ class SoftBodySpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; bool is_selectable_when_hidden() const; void redraw(EditorSpatialGizmo *p_gizmo); @@ -226,6 +238,7 @@ class VisibilityNotifierGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -243,6 +256,7 @@ class ParticlesGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; bool is_selectable_when_hidden() const; void redraw(EditorSpatialGizmo *p_gizmo); @@ -261,6 +275,7 @@ class ReflectionProbeGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -278,6 +293,7 @@ class GIProbeGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -295,6 +311,7 @@ class BakedIndirectLightGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -312,6 +329,7 @@ class CollisionShapeSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const; @@ -328,6 +346,7 @@ class CollisionPolygonSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); CollisionPolygonSpatialGizmoPlugin(); }; @@ -347,6 +366,7 @@ class NavigationMeshSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); NavigationMeshSpatialGizmoPlugin(); @@ -374,6 +394,7 @@ class JointSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; void redraw(EditorSpatialGizmo *p_gizmo); static void CreatePinJointGizmo(const Transform &p_offset, Vector<Vector3> &r_cursor_points); diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 01eeadc994..a9834cd05f 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-10 09:58+0000\n" +"PO-Revision-Date: 2019-03-12 15:25+0000\n" "Last-Translator: Vojtěch Šamla <auzkok@seznam.cz>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" @@ -24,7 +24,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 3.5.1-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -131,9 +131,8 @@ msgid "Anim Change Call" msgstr "Animace: změna volání" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Length" -msgstr "Změnit smyčku animace" +msgstr "Změnit délku animace" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -190,9 +189,8 @@ msgid "Anim Clips:" msgstr "Animační klipy:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Track Path" -msgstr "Změnit hodnotu pole" +msgstr "Změnit cestu stopy" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." @@ -274,14 +272,12 @@ msgid "Delete Key(s)" msgstr "Odstranit klíč(e)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" -msgstr "Změnit název animace:" +msgstr "Změnit režim aktualizace animace" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Interpolation Mode" -msgstr "Interpolační režim" +msgstr "Změnit režim interpolace animace" #: editor/animation_track_editor.cpp #, fuzzy @@ -330,14 +326,12 @@ msgid "Anim Insert Key" msgstr "Animace: vložit klíč" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Step" -msgstr "Změnit FPS animace" +msgstr "Změnit krok animace" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rearrange Tracks" -msgstr "Přeskupit Autoloady" +msgstr "Přeskupit stopy" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." @@ -368,9 +362,8 @@ msgid "Not possible to add a new track without a root" msgstr "Není možné přidat novou stopu bez kořenového uzlu" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Bezier Track" -msgstr "Přidat stopu" +msgstr "Přidat Bézierovu stopu" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." @@ -1385,12 +1378,16 @@ msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"Cílová platforma vyžaduje kompresi textur 'ETC' pro GLES2. Povolte 'Import " +"Etc' v nastaveních projektu." #: editor/editor_export.cpp msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" +"Cílová platforma vyžaduje kompresi textur 'ETC2' pro GLES3. Povolte 'Import " +"Etc 2' v nastaveních projektu." #: editor/editor_export.cpp msgid "" @@ -1521,14 +1518,12 @@ msgid "Move Favorite Down" msgstr "Přesunout oblíbenou položku dolů" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Předchozí záložka" +msgstr "Předchozí složka" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Vytvořit složku" +msgstr "Další složka" #: editor/editor_file_dialog.cpp msgid "Go to parent folder" @@ -1772,7 +1767,7 @@ msgstr "Export projektu selhal s chybovým kódem %d." #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Nelze uložit importované zdroje." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -2003,7 +1998,7 @@ msgstr "Selhalo nahrání zdroje." #: editor/editor_node.cpp msgid "A root node is required to save the scene." -msgstr "" +msgstr "Pro uložení scény je vyžadován kořenový uzel." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -2744,6 +2739,8 @@ msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." msgstr "" +"Vybraný zdroj (%s) neodpovídá žádnému očekávanému typu pro tuto vlastnost " +"(%s)." #: editor/editor_properties.cpp msgid "" @@ -3407,11 +3404,11 @@ msgstr "Ukládání..." #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "" +msgstr "Nastavit jako výchozí pro '%s'" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "" +msgstr "Vyčistit výchozí pro '%s'" #: editor/import_dock.cpp msgid " Files" @@ -3498,9 +3495,8 @@ msgid "Load an existing resource from disk and edit it." msgstr "Nahrát existující zdroj z disku a editovat ho." #: editor/inspector_dock.cpp -#, fuzzy msgid "Save the currently edited resource." -msgstr "Uložit vybranou animaci" +msgstr "Uložit právě editovaný zdroj." #: editor/inspector_dock.cpp msgid "Go to the previous edited object in history." @@ -3574,16 +3570,14 @@ msgid "Create points." msgstr "Vytvořit body." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "" "Edit points.\n" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" -"Upravit existující polygon:\n" -"LMB: Přesunout bod.\n" -"Ctrl+LMB: Rozdělit segment.\n" -"RMB: Vymazat bod." +"Upravit body.\n" +"LMB: Přesunout bod\n" +"RMB: Vymazat bod" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3684,7 +3678,7 @@ msgstr "Zvolte a přesuňte body. Nové uzly vytvořte pomocí RMB." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp msgid "Enable snap and show grid." -msgstr "" +msgstr "Aktivovat přichytávání a zobrazit mřížku." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3703,9 +3697,8 @@ msgid "Triangle already exists" msgstr "Trojúhelník již existuje" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Triangle" -msgstr "Přidat proměnnou" +msgstr "Přidat trojúhelník" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Change BlendSpace2D Limits" @@ -3740,11 +3733,11 @@ msgstr "Zobrazit oblíbené" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Create triangles by connecting points." -msgstr "" +msgstr "Vytvořit trojúhelníky spojováním bodů." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Erase points and triangles." -msgstr "" +msgstr "Odstranit body a trojúhelníky." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Generate blend triangles automatically (instead of manually)" @@ -3756,9 +3749,8 @@ msgid "Blend:" msgstr "Prolínání:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Parameter Changed" -msgstr "Změny materiálu" +msgstr "Parametr změněn" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3770,43 +3762,37 @@ msgid "Output node can't be added to the blend tree." msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Add Node to BlendTree" -msgstr "Přidat uzel(y) ze stromu" +msgstr "Přidat uzel do BlendTree" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Node Moved" -msgstr "Režim přesouvání" +msgstr "Uzel přesunut" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." -msgstr "" +msgstr "Nelze se připojit, port může být používán nebo připojení není platné." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Connected" -msgstr "Připojeno" +msgstr "Připojené uzly" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Disconnected" -msgstr "Odpojeno" +msgstr "Odpojené uzly" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Set Animation" -msgstr "Nová animace" +msgstr "Nastavit animaci" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Node" -msgstr "Odstranit uzel/uzly" +msgstr "Smazat uzel" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy @@ -3814,9 +3800,8 @@ msgid "Toggle Filter On/Off" msgstr "Aktivovat/Deaktivovat tuto stopu." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Change Filter" -msgstr "Změnit typ hodnot pole" +msgstr "Změnit filtr" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "No animation player set, so unable to retrieve track names." @@ -3835,9 +3820,8 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Node Renamed" -msgstr "Název uzlu" +msgstr "Uzel přejmenován" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -4066,9 +4050,8 @@ msgid "Cross-Animation Blend Times" msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Move Node" -msgstr "Režim přesouvání" +msgstr "Přesunout uzel" #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy @@ -4090,7 +4073,7 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp msgid "Sync" -msgstr "" +msgstr "Synchronizovat" #: editor/plugins/animation_state_machine_editor.cpp msgid "At End" @@ -4110,14 +4093,12 @@ msgid "No playback resource set at path: %s." msgstr "Není v cestě ke zdroji." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Node Removed" -msgstr "Odebrat" +msgstr "Uzel odebrán" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition Removed" -msgstr "Přechod: " +msgstr "Přechod odebrán" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" @@ -4247,39 +4228,39 @@ msgstr "Strom animace je neplatný." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation Node" -msgstr "Uzel animace" +msgstr "Uzel Animation" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "OneShot Node" -msgstr "" +msgstr "Uzel OneShot" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Mix Node" -msgstr "" +msgstr "Uzel Mix" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend2 Node" -msgstr "" +msgstr "Uzel Blend2" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend3 Node" -msgstr "" +msgstr "Uzel Blend3" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend4 Node" -msgstr "" +msgstr "Uzel Blend4" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "TimeScale Node" -msgstr "" +msgstr "Uzel TimeScale" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "TimeSeek Node" -msgstr "" +msgstr "Uzel TimeSeek" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Transition Node" -msgstr "" +msgstr "Uzel Transition" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Import Animations..." @@ -5207,11 +5188,11 @@ msgstr "Žádný pixel s průhledností > 128 v obrázku..." #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Load Emission Mask" -msgstr "" +msgstr "Načíst emisní masku" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Clear Emission Mask" -msgstr "" +msgstr "Vyčistit emisní masku" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -5234,7 +5215,7 @@ msgstr "Čas generování (sec):" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Emission Mask" -msgstr "" +msgstr "Emisní maska" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Capture from Pixel" diff --git a/editor/translations/de.po b/editor/translations/de.po index 954aa0af4b..81a69d2add 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -43,8 +43,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-08 15:04+0000\n" -"Last-Translator: Arthur S. Muszynski <artism90@gmail.com>\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" +"Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -52,7 +52,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 3.5.1-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1404,33 +1404,31 @@ msgid "Packing" msgstr "Packe" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" "Die Zielplattform benötigt ‚ETC‘-Texturkompression für GLES2. Bitte in den " -"Projekteinstellungen aktivieren." +"Projekteinstellungen ‚Import Etc‘ aktivieren." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"Die Zielplattform benötigt ‚ETC‘-Texturkompression für GLES2. Bitte in den " +"Die Zielplattform benötigt ‚ETC2‘-Texturkompression für GLES2. Bitte in den " "Projekteinstellungen aktivieren." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"Die Zielplattform benötigt ‚ETC‘-Texturkompression für GLES2. Bitte in den " -"Projekteinstellungen aktivieren." +"Die Zielplattform benötigt ‚ETC‘-Texturkompression für den Treiber-Fallback " +"auf GLES2. Bitte ‚Import Etc‘ in den Projekteinstellungen aktivieren oder ‚" +"Driver Fallback Enabled‘ ausschalten." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1553,23 +1551,20 @@ msgid "Move Favorite Down" msgstr "Favorit nach unten schieben" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Vorherige Ebene" +msgstr "Vorheriger Ordner" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Nächste Ebene" +msgstr "Nächster Ordner" #: editor/editor_file_dialog.cpp msgid "Go to parent folder" msgstr "Gehe zu übergeordnetem Ordner" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "Ordner konnte nicht erstellt werden." +msgstr "Gegenwärtigen Ordner (de)favorisieren." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -1802,9 +1797,8 @@ msgid "Project export failed with error code %d." msgstr "Projekt-Export ist fehlgeschlagen mit Fehlercode %d." #: editor/editor_node.cpp -#, fuzzy msgid "Imported resources can't be saved." -msgstr "Importierte Ressourcen" +msgstr "Importierte Ressourcen können nicht abgespeichert werden." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1820,6 +1814,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Diese Ressource kann nicht abgespeichert werden, da sie nicht Teil der " +"bearbeiteten Szene ist. Ressource muss vorher einzigartig gemacht werden." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -7024,22 +7020,20 @@ msgid "Merge from Scene" msgstr "Aus Szene zusammenführen" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "Nächste Ebene" +msgstr "Nächste Koordinate" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." -msgstr "" +msgstr "Die nächste Form oder Kachel auswählen." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Vorherige Ebene" +msgstr "Vorherige Koordinate" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." -msgstr "" +msgstr "Die vorherige Form oder Kachel auswählen." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." @@ -7198,14 +7192,12 @@ msgid "Clear Tile Bitmask" msgstr "Kachel Bitmaske löschen" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Concave" -msgstr "Polygon verschieben" +msgstr "Polygon konkav machen" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Convex" -msgstr "Polygon verschieben" +msgstr "Polygon konvex machen" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7330,9 +7322,8 @@ msgid "Exporting All" msgstr "Exportiere alles" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "Dieser Pfad existiert nicht." +msgstr "Der angegebene Export-Pfad existiert nicht:" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -10071,6 +10062,8 @@ msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." msgstr "" +"Plane-Shapes funktionieren nicht gut und werden in einer zukünftigen Version " +"entfernt. Von der Nutzung wird abgeraten." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." @@ -10093,6 +10086,8 @@ msgid "" "GIProbes are not supported by the GLES2 video driver.\n" "Use a BakedLightmap instead." msgstr "" +"GIProbes werden vom GLES2-Videotreiber nicht unterstützt.\n" +"BakedLightmaps können als Alternative verwendet werden." #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." @@ -10282,6 +10277,10 @@ msgid "" "If you dont't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" +"Einfache Container sind unnötig solange ihnen kein Skript angehängt ist das " +"die Platzierung der Inhalte vornimmt.\n" +"Falls kein Skript angehängt werden soll wird empfohlen ein einfaches " +"‚Control‘-Node zu verwenden." #: scene/gui/dialogs.cpp msgid "Alert!" @@ -10292,9 +10291,8 @@ msgid "Please Confirm..." msgstr "Bitte bestätigen..." #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "Gehe zu übergeordnetem Ordner" +msgstr "Gehe zu übergeordnetem Ordner." #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/el.po b/editor/translations/el.po index 03a48d500d..8feb019a6f 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -3,12 +3,13 @@ # Copyright (c) 2014-2019 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. +# Georgios Katsanakis <geo.elgeo@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:39+0100\n" -"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" +"Last-Translator: Georgios Katsanakis <geo.elgeo@gmail.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" "Language: el\n" @@ -16,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -86,14 +87,12 @@ msgid "Delete Selected Key(s)" msgstr "Διαγραφή επιλογής" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Add Bezier Point" -msgstr "Προσθήκη σημείου" +msgstr "Προσθήκη σημείου Bezier" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Move Bezier Points" -msgstr "Μετακίνηση σημείου" +msgstr "Μετακίνηση σημείου Bezier" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 38a5de1c5a..b956ffac52 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-08 15:03+0000\n" +"PO-Revision-Date: 2019-03-12 15:25+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -22,7 +22,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.5.1-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1364,33 +1364,31 @@ msgid "Packing" msgstr "Pakataan" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" -"GLES2 tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke tuki päälle " -"projektin asetuksista." +"GLES2 tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke 'Import Etc' " +"päälle projektin asetuksista." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"GLES2 tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke tuki päälle " -"projektin asetuksista." +"GLES3 tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke 'Import Etc " +"2' päälle projektin asetuksista." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"GLES2 tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke tuki päälle " -"projektin asetuksista." +"GLES2 vara-ajuri tarvitsee kohdealustalla 'ETC' tekstuuripakkausta. Kytke " +"'Import Etc' päälle projektin asetuksista tai poista 'Driver Fallback " +"Enabled' asetus." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1513,23 +1511,20 @@ msgid "Move Favorite Down" msgstr "Siirrä suosikkia alas" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Edellinen kerros" +msgstr "Edellinen kansio" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Seuraava kerros" +msgstr "Seuraava kansio" #: editor/editor_file_dialog.cpp msgid "Go to parent folder" msgstr "Siirry yläkansioon" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "Kansiota ei voitu luoda." +msgstr "Kansio suosikkeihin." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -1763,7 +1758,7 @@ msgstr "Projektin vienti epäonnistui virhekoodilla %d." #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Tuotuja resursseja ei voida tallentaa." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1779,6 +1774,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Resurssia ei voida tallentaa, koska se ei kuulu muokattavana olevaan " +"skeneen. Tee siitä ensin yksilöllinen." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -6952,22 +6949,20 @@ msgid "Merge from Scene" msgstr "Yhdistä skenestä" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "Seuraava kerros" +msgstr "Seuraava koordinaatti" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." -msgstr "" +msgstr "Valitse seuraava muoto, aliruutu tai ruutu." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Edellinen kerros" +msgstr "Edellinen koordinaatti" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." -msgstr "" +msgstr "Valitse edellinen muoto, aliruutu tai ruutu." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." @@ -7123,14 +7118,12 @@ msgid "Clear Tile Bitmask" msgstr "Tyhjennä ruudun bittimaski" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Concave" -msgstr "Siirrä polygonia" +msgstr "Tee polygonista konkaavi" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Convex" -msgstr "Siirrä polygonia" +msgstr "Tee polygonista konveksi" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7194,11 +7187,11 @@ msgstr "Visual Shaderin syötteen tyyppi vaihdettu" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" -msgstr "Vertex" +msgstr "Kärkipiste" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Fragment" -msgstr "Fragment" +msgstr "Fragmentti" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Light" @@ -7255,9 +7248,8 @@ msgid "Exporting All" msgstr "Viedään kaikki" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "Polkua ei ole olemassa." +msgstr "Annettu vientipolku ei ole olemassa:" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -9973,6 +9965,8 @@ msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." msgstr "" +"Tasomuodot eivät toimi hyvin ja ne tullaan poistaamaan tulevissa versioissa. " +"Ole hyvä ja älä käytä niitä." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." @@ -9995,6 +9989,8 @@ msgid "" "GIProbes are not supported by the GLES2 video driver.\n" "Use a BakedLightmap instead." msgstr "" +"GIProbe ei ole tuettu GLES2 näyttöajurissa.\n" +"Käytä sen sijaan BakedLightmap resurssia." #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." @@ -10174,6 +10170,10 @@ msgid "" "If you dont't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" +"Säilöllä ei ole itsessään mitään merkitystä ellei jokin skripti säädä sen " +"alisolmujen sijoitustapaa.\n" +"Jos et aio lisätä skriptiä, ole hyvä ja käytä sen sijaan tavallista " +"'Control' solmua." #: scene/gui/dialogs.cpp msgid "Alert!" @@ -10184,9 +10184,8 @@ msgid "Please Confirm..." msgstr "Ole hyvä ja vahvista..." #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "Siirry yläkansioon" +msgstr "Siirry yläkansioon." #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 988096275a..b1bb5be97a 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -59,8 +59,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-10 09:58+0000\n" -"Last-Translator: Hugo Locurcio <hugo.locurcio@hugo.pro>\n" +"PO-Revision-Date: 2019-03-12 15:25+0000\n" +"Last-Translator: Caye Pierre <pierrecaye@laposte.net>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -68,7 +68,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 3.5.1-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1422,33 +1422,32 @@ msgid "Packing" msgstr "Empaquetage" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" -"La plate-forme cible nécessite une compression de texture « ETC » pour " -"GLES2. Activez le support dans les Paramètres du projet." +"La plate-forme cible nécessite une compression de texture 'ETC' pour GLES2. " +"Activez 'Import Etc' dans les paramètres du projet." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"La plate-forme cible nécessite une compression de texture « ETC » pour " -"GLES2. Activez le support dans les Paramètres du projet." +"La plate-forme cible nécessite une compression de texture 'ETC2' pour GLES3. " +"Activez 'Import Etc 2' dans les Paramètres du projet." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"La plate-forme cible nécessite une compression de texture « ETC » pour " -"GLES2. Activez le support dans les Paramètres du projet." +"La plate-forme cible nécessite une compression de texture ' ETC ' pour le " +"fallback pilote de GLES2.\n" +"Activez 'Import Etc' dans les paramètres du projet, ou désactivez 'Driver " +"Fallback Enabled'." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1571,23 +1570,20 @@ msgid "Move Favorite Down" msgstr "Déplacer le favori vers le bas" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Onglet précédent" +msgstr "Dossier précédent" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Étage suivant" +msgstr "Dossier suivant" #: editor/editor_file_dialog.cpp msgid "Go to parent folder" msgstr "Aller au dossier parent" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "Impossible de créer le dossier." +msgstr "Ajouter ou supprimer des favoris le dossier courant." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -1821,7 +1817,7 @@ msgstr "L'export du projet a échoué avec le code erreur %d." #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Les ressources importés ne peuvent pas être sauvegarder." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1837,6 +1833,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Cette ressource ne peut pas être sauvegardée parce qu’elle n'appartient pas " +"à la scène éditer. Soyez sûr qu'elle soit unique." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -3060,7 +3058,7 @@ msgstr "Boucle de Redirection." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed:" -msgstr "Échec:" +msgstr "Échec :" #: editor/export_template_manager.cpp msgid "Download Complete." @@ -4385,7 +4383,7 @@ msgstr "Filtres…" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" -msgstr "Contenu:" +msgstr "Contenu :" #: editor/plugins/asset_library_editor_plugin.cpp msgid "View Files" @@ -4393,7 +4391,7 @@ msgstr "Voir Fichiers" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve hostname:" -msgstr "Impossible de résoudre le nom de l'hôte:" +msgstr "Impossible de résoudre le nom de l'hôte :" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." @@ -4401,15 +4399,15 @@ msgstr "Erreur de connection, veuillez essayer à nouveau." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" -msgstr "Connection à l'hôte impossible:" +msgstr "Connexion à l'hôte impossible :" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response from host:" -msgstr "Pas de réponse de l'hôte:" +msgstr "Pas de réponse de l'hôte :" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" -msgstr "La requête a échoué, code retourné:" +msgstr "La requête a échoué, code retourné :" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" @@ -4421,7 +4419,7 @@ msgstr "Vérification du téléchargement échouée, le fichier a été altéré #: editor/plugins/asset_library_editor_plugin.cpp msgid "Expected:" -msgstr "Attendu:" +msgstr "Attendu :" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Got:" @@ -4433,7 +4431,7 @@ msgstr "Vérification de brouillage sha256 échouée" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" -msgstr "Erreur dans le téléchargement d'une ressource:" +msgstr "Erreur dans le téléchargement d'une ressource :" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading (%s / %s)..." @@ -4465,7 +4463,7 @@ msgstr "Erreur de téléchargement" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" -msgstr "Le téléchargement de cette ressource est déjà en cours!" +msgstr "Le téléchargement de cette ressource est déjà en cours !" #: editor/plugins/asset_library_editor_plugin.cpp msgid "First" @@ -5234,11 +5232,11 @@ msgstr "Impossible de cartographier la zone." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Source Mesh:" -msgstr "Sélectionner un maillage source :" +msgstr "Sélectionnez un maillage source :" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Target Surface:" -msgstr "Sélectionner une surface cible :" +msgstr "Sélectionnez une surface cible :" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate Surface" @@ -5339,7 +5337,7 @@ msgstr "Compte de Points Générés :" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" -msgstr "Temps de Génération (sec):" +msgstr "Temps de Génération (sec) :" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Emission Mask" @@ -5359,7 +5357,7 @@ msgstr "Des faces ne contiennent pas de zone !" #: editor/plugins/particles_editor_plugin.cpp msgid "No faces!" -msgstr "Pas de faces!" +msgstr "Pas de faces !" #: editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry." @@ -5375,7 +5373,7 @@ msgstr "Créer Émetteur" #: editor/plugins/particles_editor_plugin.cpp msgid "Emission Points:" -msgstr "Points d'Émission:" +msgstr "Points d'Émission :" #: editor/plugins/particles_editor_plugin.cpp msgid "Surface Points" @@ -7059,22 +7057,20 @@ msgid "Merge from Scene" msgstr "Fusionner depuis la scène" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "Étage suivant" +msgstr "Coordonnée suivante" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." -msgstr "" +msgstr "Sélectionnez la forme suivante, sous-tuile, ou tuile." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Onglet précédent" +msgstr "Coordonnée précédente" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." -msgstr "" +msgstr "Sélectionner la forme précédente, sous-tuile, ou tuile." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." @@ -7232,14 +7228,12 @@ msgid "Clear Tile Bitmask" msgstr "Supprimer le masque de bit de la tuile" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Concave" -msgstr "Déplacer le polygone" +msgstr "Rendre le polygone concave" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Convex" -msgstr "Déplacer le polygone" +msgstr "Rendre le polygon Convex" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7364,9 +7358,8 @@ msgid "Exporting All" msgstr "Tout exporter" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "Le chemin vers ce fichier n'existe pas." +msgstr "Le chemin de l'exportation donné n'existe pas :" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -7476,7 +7469,7 @@ msgstr "Exporter le PCK/ZIP" #: editor/project_export.cpp msgid "Export mode?" -msgstr "Mode d'exportation?" +msgstr "Mode d'exportation ?" #: editor/project_export.cpp msgid "Export All" @@ -7583,7 +7576,7 @@ msgstr "Créer et ouvrir" #: editor/project_manager.cpp msgid "Install Project:" -msgstr "Installer projet :" +msgstr "Installer le projet :" #: editor/project_manager.cpp msgid "Install & Edit" @@ -8941,11 +8934,11 @@ msgstr "Changer le rayon d'une forme en sphère" #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp msgid "Change Box Shape Extents" -msgstr "Changer les extents d'une forme en boîte" +msgstr "Changer l'étendue de la forme rectangulaire" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Radius" -msgstr "Changer le rayon d'une forme en capsule" +msgstr "Changer le rayon de la forme capsule" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Height" @@ -10121,6 +10114,8 @@ msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." msgstr "" +"Les formes planes ne fonctionnent pas bien et seront supprimées dans les " +"versions futures. S'il vous plaît, ne les utilisez pas." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." @@ -10143,6 +10138,8 @@ msgid "" "GIProbes are not supported by the GLES2 video driver.\n" "Use a BakedLightmap instead." msgstr "" +"Les GIProps ne sont pas supporter par le pilote de vidéos GLES2.\n" +"A la place utilisez une BakedLightMap." #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." @@ -10329,6 +10326,10 @@ msgid "" "If you dont't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" +"Le conteneur en lui-même ne sert à rien à moins qu'un script ne configure " +"son comportement de placement de ses enfants.\n" +"Si vous n'avez pas l'intention d'ajouter un script, utilisez plutôt un nœud " +"'Control'." #: scene/gui/dialogs.cpp msgid "Alert!" @@ -10339,9 +10340,8 @@ msgid "Please Confirm..." msgstr "Veuillez confirmer…" #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "Aller au dossier parent" +msgstr "Aller au dossier parent." #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 458bf87351..63b562f74c 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-05 17:55+0000\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" "Last-Translator: Wataru Onuki <watonu@magadou.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" @@ -35,7 +35,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 3.5\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -138,9 +138,8 @@ msgid "Anim Change Call" msgstr "アニメーション呼出しの変更" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Length" -msgstr "アニメーションのループを変更" +msgstr "アニメーションの長さを変更" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -3194,7 +3193,7 @@ msgstr "依存関係の編集..." #: editor/filesystem_dock.cpp msgid "View Owners..." -msgstr "所有者を見る..." +msgstr "オーナーを見る..." #: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Rename..." @@ -4673,9 +4672,8 @@ msgid "Click to change object's rotation pivot." msgstr "クリックでオブジェクトの回転ピボットを変更する。" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Pan Mode" -msgstr "パン・モード" +msgstr "パンモード" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle snapping." @@ -6015,9 +6013,8 @@ msgid "Go to next edited document." msgstr "次の編集したドキュメントへ移動。" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Discard" -msgstr "離散" +msgstr "破棄" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -6249,7 +6246,7 @@ msgstr "平行投影" #: editor/plugins/spatial_editor_plugin.cpp msgid "Perspective" -msgstr "透視投影(遠近法)" +msgstr "透視投影" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy @@ -10471,7 +10468,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "exp_edit がtrueの場合、min_value は0より大きい必要があります。" #: scene/gui/scroll_container.cpp msgid "" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index ecdcd469b0..79597943ab 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-08 15:04+0000\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" "Last-Translator: 송태섭 <xotjq237@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" @@ -25,7 +25,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 3.5.1-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1363,33 +1363,27 @@ msgid "Packing" msgstr "패킹 중" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." -msgstr "" -"대상 플랫폼은 GLES2를 위해 'ETC' 텍스쳐 압축이 필요합니다. 프로젝트 설정에서 " -"지원을 사용하세요." +msgstr "대상 플랫폼은 GLES2를 위해 'ETC' 텍스쳐 압축이 필요합니다. 프로젝트 설정에서 'Import Etc'을 사용하세요." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"대상 플랫폼은 GLES2를 위해 'ETC' 텍스쳐 압축이 필요합니다. 프로젝트 설정에서 " -"지원을 사용하세요." +"대상 플랫폼은 GLES3를 위해 'ETC2' 텍스쳐 압축이 필요합니다. 프로젝트 설정에서 'Import Etc 2'를 사용하세요." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"대상 플랫폼은 GLES2를 위해 'ETC' 텍스쳐 압축이 필요합니다. 프로젝트 설정에서 " -"지원을 사용하세요." +"대상 플랫폼은 드라이버가 GLES2로 폴백하기 위해 'ETC' 텍스쳐 압축이 필요합니다.\n" +"프로젝트 설정에서 'Import Etc'을 키거나, 'Driver Fallback Enabled'를 비활성화하세요." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1512,23 +1506,20 @@ msgid "Move Favorite Down" msgstr "즐겨찾기 아래로 이동" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "이전 층" +msgstr "이전 폴더" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "다음 층" +msgstr "다음 폴더" #: editor/editor_file_dialog.cpp msgid "Go to parent folder" msgstr "부모 폴더로 이동" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "폴더를 만들 수 없습니다." +msgstr "현재 폴더를 즐겨찾기 (안) 합니다." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -1761,9 +1752,8 @@ msgid "Project export failed with error code %d." msgstr "프로젝트 내보내기가 오류 코드 %d 로 실패했습니다." #: editor/editor_node.cpp -#, fuzzy msgid "Imported resources can't be saved." -msgstr "가져온 리소스" +msgstr "가져온 리소스를 저장할 수 없습니다." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1778,7 +1768,7 @@ msgstr "리소스 저장 중 오류!" msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." -msgstr "" +msgstr "이 리소스는 편집된 씬에 속해있지 않기 때문에 저장할 수 없습니다. 먼저 리소스를 유일하게 만드세요." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -4599,8 +4589,8 @@ msgid "" "Show a list of all objects at the position clicked\n" "(same as Alt+RMB in select mode)." msgstr "" -"클릭한 위치에 있는 모든 오브젝트들의 목록을 보여줍니다.\n" -"(선택모드에서 알트+우클릭과 같습니다.)" +"클릭한 위치에 있는 모든 오브젝트들의 목록을 보여줍니다\n" +"(선택모드에서 Alt+우클릭과 같습니다)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Click to change object's rotation pivot." @@ -6929,22 +6919,20 @@ msgid "Merge from Scene" msgstr "씬으로부터 병합하기" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "다음 층" +msgstr "다음 좌표" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." -msgstr "" +msgstr "다음 모양, 하위 타일, 혹은 타일을 선택하세요." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "이전 층" +msgstr "이전 좌표" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." -msgstr "" +msgstr "이전 모양, 하위 타일, 혹은 타일을 선택하세요." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." @@ -7101,14 +7089,12 @@ msgid "Clear Tile Bitmask" msgstr "타일 비트 마스크 지우기" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Concave" -msgstr "폴리곤 이동" +msgstr "오목한 폴리곤 만들기" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Convex" -msgstr "폴리곤 이동" +msgstr "볼록한 폴리곤 만들기" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7232,9 +7218,8 @@ msgid "Exporting All" msgstr "모두 내보내기" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "경로가 존재하지 않습니다." +msgstr "주어진 내보내기 경로가 존재하지 않습니다:" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -9923,7 +9908,7 @@ msgstr "" msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." -msgstr "" +msgstr "평면 모양은 잘 작동하지 않으며 이후 버전에서 제거될 예정입니다. 사용하지 말아주세요." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." @@ -9946,6 +9931,8 @@ msgid "" "GIProbes are not supported by the GLES2 video driver.\n" "Use a BakedLightmap instead." msgstr "" +"GIProbe는 GLES2 비디오 드라이버에서 지원하지 않습니다.\n" +"BakedLightmap을 사용하세요." #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." @@ -10123,6 +10110,8 @@ msgid "" "If you dont't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" +"컨테이너 자체는 자식 배치 행동을 구성하지 않는 한 용도가 없습니다.\n" +"스크립트를 추가하지 않는 경우, 순수한 'Control' 노드를 사용해주세요." #: scene/gui/dialogs.cpp msgid "Alert!" @@ -10133,9 +10122,8 @@ msgid "Please Confirm..." msgstr "확인해주세요..." #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "부모 폴더로 이동" +msgstr "부모 폴더로 이동합니다." #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 8cdcbe44a4..b575899626 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -35,7 +35,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-08 15:04+0000\n" +"PO-Revision-Date: 2019-03-12 15:36+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" @@ -45,7 +45,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 3.5.1-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -114,14 +114,12 @@ msgid "Delete Selected Key(s)" msgstr "Usuń klucz(e)" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Add Bezier Point" -msgstr "Dodaj punkt" +msgstr "Dodaj punkt krzywej Beziera" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Move Bezier Points" -msgstr "Przesuń punkty" +msgstr "Przesuń punkty krzywej Beziera" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -210,9 +208,8 @@ msgid "Anim Clips:" msgstr "Klipy animacji:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Track Path" -msgstr "Zmień Wartość Tablicy" +msgstr "Zmień adres ścieżki" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." @@ -239,9 +236,8 @@ msgid "Time (s): " msgstr "Czas (s): " #: editor/animation_track_editor.cpp -#, fuzzy msgid "Toggle Track Enabled" -msgstr "Efekt Dopplera" +msgstr "Przełącz aktywność ścieżki" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -294,9 +290,8 @@ msgid "Delete Key(s)" msgstr "Usuń klucz(e)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" -msgstr "Zmień nazwę animacji:" +msgstr "Zmień tryb zmiany animacji" #: editor/animation_track_editor.cpp msgid "Change Animation Interpolation Mode" @@ -386,9 +381,8 @@ msgid "Not possible to add a new track without a root" msgstr "Nie da się dodać nowej ścieżki bez korzenia" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Bezier Track" -msgstr "Dodaj ścieżkę" +msgstr "Dodaj ścieżkę krzywej Beziera" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." @@ -399,23 +393,20 @@ msgid "Track is not of type Spatial, can't insert key" msgstr "Ścieżka nie jest typu Spatial, nie można wstawić klucza" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Transform Track Key" -msgstr "Ścieżka przekształcenia 3D" +msgstr "Dodaj klucz ścieżki transformacji" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track Key" -msgstr "Dodaj ścieżkę" +msgstr "Dodaj klucz ścieżki" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." msgstr "Ścieżka jest nieprawidłowa, więc nie można wstawić klucza metody." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Method Track Key" -msgstr "Ścieżka wywołania metody" +msgstr "Dodaj klucz ścieżki metody" #: editor/animation_track_editor.cpp msgid "Method not found in object: " @@ -577,17 +568,16 @@ msgid "Copy" msgstr "Kopiuj" #: editor/animation_track_editor_plugins.cpp -#, fuzzy msgid "Add Audio Track Clip" -msgstr "Klipy dźwiękowe:" +msgstr "Dodaj klip ścieżki audio" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Zmień początkowe przesunięcie klipu ścieżki audio" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Zmień końcowe przesunięcie klipu ścieżki audio" #: editor/array_property_edit.cpp msgid "Resize Array" @@ -658,9 +648,8 @@ msgid "Warnings" msgstr "Ostrzeżenia" #: editor/code_editor.cpp -#, fuzzy msgid "Line and column numbers." -msgstr "Numery linii i kolumn" +msgstr "Numery linii i kolumn." #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -1218,9 +1207,8 @@ msgid "Add Bus" msgstr "Dodaj magistralę" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add a new Audio Bus to this layout." -msgstr "Zapisz układ magistrali audio jako..." +msgstr "Dodaj nową Szynę Audio do tego układu." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp @@ -1401,12 +1389,16 @@ msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"Platforma docelowa wymaga dla GLES2 kompresji tekstur 'ETC'. Włącz 'Import " +"Etc' w Ustawieniach Projektu." #: editor/editor_export.cpp msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" +"Platforma docelowa wymaga dla GLES3 kompresji tekstur 'ETC2'. Włącz 'Import " +"Etc 2' w Ustawieniach Projektu." #: editor/editor_export.cpp msgid "" @@ -7016,14 +7008,12 @@ msgid "Clear transform" msgstr "Wyczyść przekształcenie" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Add Texture(s) to TileSet." -msgstr "Dodaj teksturę/tekstury do TileSet." +msgstr "Dodaj teksturę/y do TileSetu." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Remove selected Texture from TileSet." -msgstr "Usuń zaznaczoną teksturę z TileSet." +msgstr "Usuń zaznaczoną Teksturę z TileSetu." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -7034,22 +7024,20 @@ msgid "Merge from Scene" msgstr "Połącz ze sceny" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "Następny poziom" +msgstr "Następny koordynat" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." -msgstr "" +msgstr "Wybierz następny kształt, podkafelek lub Kafelek." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Poprzedni poziom" +msgstr "Poprzedni koordynat" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." -msgstr "" +msgstr "Wybierz poprzedni kształt, podkafelek lub Kafelek." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." @@ -7283,14 +7271,12 @@ msgid "Set Input Default Port" msgstr "Ustaw jako domyślne dla '%s'" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Add Node to Visual Shader" -msgstr "Shader wizualny" +msgstr "Dodaj Węzeł do Wizualnego Shadera" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Duplicate Nodes" -msgstr "Duplikuj węzeł(y)" +msgstr "Duplikuj węzły" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7313,14 +7299,12 @@ msgid "VisualShader" msgstr "Shader wizualny" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Edit Visual Property" -msgstr "Edytuj filtry" +msgstr "Edytuj Wizualną Właściwość" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Visual Shader Mode Changed" -msgstr "Zmiany Shadera" +msgstr "Zmiana Trybu Wizualnego Shadera" #: editor/project_export.cpp msgid "Runnable" @@ -7356,9 +7340,8 @@ msgid "Exporting All" msgstr "Eksportowanie wszystkiego" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "Ścieżka nie istnieje." +msgstr "Podana ścieżka eksportu nie istnieje:" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -7601,11 +7584,11 @@ msgstr "Szukaj" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderer:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7614,10 +7597,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Wyższa jakość wizualna\n" +"Wszystkie funkcjonalności dostępne\n" +"Niekompatybilne ze starszym sprzętem\n" +"Niezalecane dla gier przeglądarkowych" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7626,17 +7613,22 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Mniejsza jakość wizualna\n" +"Niektóre funkcjonalności niedostępne\n" +"Działa na większości sprzętu\n" +"Rekomendowane dla gier przeglądarkowych" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"Renderer może zostać później zmieniony, ale sceny mogą potrzebować " +"dostosowania." #: editor/project_manager.cpp msgid "Unnamed Project" msgstr "Projekt bez nazwy" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project at '%s'." msgstr "Nie można otworzyć projektu w '%s'." diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 19fe290256..224b378e8c 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -53,12 +53,13 @@ # Thiago Amendola <amendolathiago@gmail.com>, 2019. # Raphael Nogueira Campos <raphaelncampos@gmail.com>, 2019. # Dimenicius <vinicius.costa.92@gmail.com>, 2019. +# Davi <wokep.ma.wavid@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2019-02-21 21:18+0000\n" -"Last-Translator: Julio Yagami <juliohenrique31501234@hotmail.com>\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" +"Last-Translator: Davi <wokep.ma.wavid@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\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 3.5-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -133,14 +134,12 @@ msgid "Delete Selected Key(s)" msgstr "Excluir Chave(s) Selecionada(s)" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Add Bezier Point" -msgstr "Adicionar ponto" +msgstr "Adicionar um Ponto Bezier" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Move Bezier Points" -msgstr "Mover pontos" +msgstr "Mover pontos Bezier" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -314,19 +313,16 @@ msgid "Delete Key(s)" msgstr "Deletar Chave(s)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" -msgstr "Alterar Nome da Animação:" +msgstr "Alterar Modo de Atualização da Animação:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Interpolation Mode" -msgstr "Modo de Interpolação" +msgstr "Alterar Modo de Interpolação da Animação" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Loop Mode" -msgstr "Alterar Repetição da Animação" +msgstr "Alterar Modo Repetição da Animação" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" @@ -1427,6 +1423,8 @@ msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"A plataforma alvo requer compressão de texturas 'ETC' para GLES2. Habilite " +"'Import Etc' nas Configurações de Projeto." #: editor/editor_export.cpp msgid "" @@ -1830,6 +1828,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"O recurso não pode ser salvo porque não pertence à cena editada. Faça-o " +"único primeiro." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -2052,14 +2052,12 @@ msgid "Save changes to '%s' before closing?" msgstr "Salvar alterações em '%s' antes de fechar?" #: editor/editor_node.cpp -#, fuzzy msgid "Saved %s modified resource(s)." -msgstr "Falha ao carregar recurso." +msgstr "Foram salvos %s recurso(s) modificado(s)." #: editor/editor_node.cpp -#, fuzzy msgid "A root node is required to save the scene." -msgstr "Apenas um arquivo é requerido para textura grande." +msgstr "Um nó raiz é requerido para salvar a cena." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -3695,9 +3693,8 @@ msgid "Move Node Point" msgstr "Mover pontos" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Limits" -msgstr "Alterar Tempo de Mistura" +msgstr "Alterar limites do BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy @@ -3831,9 +3828,8 @@ msgid "Blend:" msgstr "Misturar:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Parameter Changed" -msgstr "Alterações de Material" +msgstr "Parâmetro Modificado" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3851,9 +3847,8 @@ msgstr "Adicionar Nó(s) a Partir da Árvore" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Node Moved" -msgstr "Modo Mover" +msgstr "Nó Movido" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -3863,15 +3858,13 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Connected" -msgstr "Conectado" +msgstr "Nós Conectados" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Disconnected" -msgstr "Desconectado" +msgstr "Nós Desconectados" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy @@ -3880,9 +3873,8 @@ msgstr "Nova animação" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Node" -msgstr "Excluir Nó(s)" +msgstr "Excluir Nó" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy @@ -4198,13 +4190,12 @@ msgid "Node Removed" msgstr "Removido:" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition Removed" -msgstr "Nó Transition" +msgstr "Transição Removida" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" -msgstr "" +msgstr "Configurar Nó de Início (Autoplay)" #: editor/plugins/animation_state_machine_editor.cpp msgid "" @@ -5029,7 +5020,7 @@ msgstr "Cozinhar Sonda GI" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" -msgstr "" +msgstr "Gradiente Editado" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -6440,6 +6431,8 @@ msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." msgstr "" +"Nota: O valor de FPS mostrado é da taxa de quadros do editor\n" +"Ele não deve ser usado como indicação confiável de desempenho do jogo." #: editor/plugins/spatial_editor_plugin.cpp msgid "View Rotation Locked" @@ -7057,9 +7050,8 @@ msgid "Select the next shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Chão Anterior" +msgstr "Coordenada Anterior" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." @@ -7078,9 +7070,8 @@ msgid "Erase bitmask." msgstr "Apagar o bitmask." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Create a new rectangle." -msgstr "Criar novos nós." +msgstr "Criar um novo retângulo." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create a new polygon." @@ -7219,14 +7210,12 @@ msgid "Clear Tile Bitmask" msgstr "Limpar o Bitmask da telha" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Concave" -msgstr "Mover Polígono" +msgstr "Tornar o Polígono Côncavo" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Convex" -msgstr "Mover Polígono" +msgstr "Tornar o Polígono Convexo" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7336,11 +7325,15 @@ msgid "" msgstr "" #: editor/project_export.cpp +#, fuzzy msgid "" "Failed to export the project for platform '%s'.\n" "This might be due to a configuration issue in the export preset or your " "export settings." msgstr "" +"Falha ao exportar o projeto para a plataforma '%s'.\n" +"Isto pode ser devido a um problema de configuração nas pré-configurações de " +"exportação ou nas configurações de exportação." #: editor/project_export.cpp msgid "Release" @@ -7351,9 +7344,8 @@ msgid "Exporting All" msgstr "Exportando tudo" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "O caminho não existe." +msgstr "O caminho de exportação informado não existe." #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -8396,9 +8388,8 @@ msgid "Instantiated scenes can't become root" msgstr "Cenas instanciadas não podem se tornar raiz" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make node as Root" -msgstr "Fazer Raiz de Cena" +msgstr "Tornar Raiz o Nó" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)?" @@ -8437,9 +8428,8 @@ msgid "Make Local" msgstr "Tornar Local" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "New Scene Root" -msgstr "Fazer Raiz de Cena" +msgstr "Nova Raiz de Cena" #: editor/scene_tree_dock.cpp msgid "Create Root Node:" @@ -8870,19 +8860,16 @@ msgid "Set From Tree" msgstr "Definir a partir da árvore" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Erase Shortcut" -msgstr "Suavizar final" +msgstr "Apagar Atalho" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Restore Shortcut" -msgstr "Atalhos" +msgstr "Restaurar Atalho" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Change Shortcut" -msgstr "Alterar Âncoras" +msgstr "Modificar Atalho" #: editor/settings_config_dialog.cpp msgid "Shortcuts" @@ -9479,9 +9466,8 @@ msgid "Change Input Value" msgstr "Alterar Valor da Entrada" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Resize Comment" -msgstr "Redimensionar o CanvasItem" +msgstr "Redimensionar Comentário" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." @@ -10083,6 +10069,8 @@ msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." msgstr "" +"Formas planas não funcionam bem e serão removidas em versões futuras. Por " +"favor não as use." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." @@ -10295,9 +10283,8 @@ msgid "Please Confirm..." msgstr "Confirme Por Favor..." #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "Ir para pasta pai" +msgstr "Ir para diretório pai" #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index 2eeeadfd87..f69bf41c42 100644 --- a/editor/translations/pt_PT.po +++ b/editor/translations/pt_PT.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-08 15:04+0000\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" "Last-Translator: João Lopes <linux-man@hotmail.com>\n" "Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_PT/>\n" @@ -27,7 +27,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 3.5.1-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1375,33 +1375,32 @@ msgid "Packing" msgstr "Empacotamento" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" -"Plataforma Alvo exige compressão de textura 'ETC' para GLES2. Ative suporte " -"nas Configurações do Projeto." +"Plataforma Alvo exige compressão de textura 'ETC' para GLES2. Ative " +"'Importar Etc' nas Configurações do Projeto." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"Plataforma Alvo exige compressão de textura 'ETC' para GLES2. Ative suporte " -"nas Configurações do Projeto." +"Plataforma Alvo exige compressão de textura 'ETC2' para GLES3. Ative " +"'Importar Etc 2' nas Configurações do Projeto." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"Plataforma Alvo exige compressão de textura 'ETC' para GLES2. Ative suporte " -"nas Configurações do Projeto." +"Plataforma Alvo exige compressão de textura 'ETC' para o driver de recurso " +"em GLES2.\n" +"Ative 'Importar Etc' nas Configurações do Projeto, ou desative 'Driver de " +"Recurso ativo'." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1524,23 +1523,20 @@ msgid "Move Favorite Down" msgstr "Mover Favorito para Baixo" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Piso anterior" +msgstr "Pasta Anterior" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Próximo Piso" +msgstr "Próxima Pasta" #: editor/editor_file_dialog.cpp msgid "Go to parent folder" msgstr "Ir para a pasta acima" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "Não foi possível criar pasta." +msgstr "(Não) tornar favorita atual pasta." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -6959,18 +6955,16 @@ msgid "Merge from Scene" msgstr "Fundir a partir da Cena" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "Próximo Piso" +msgstr "Próxima Coordenada" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Piso anterior" +msgstr "Coordenada Anterior" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." @@ -7130,14 +7124,12 @@ msgid "Clear Tile Bitmask" msgstr "Limpar Bitmask de Tile" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Concave" -msgstr "Mover Polígono" +msgstr "Fazer Polígono Côncavo" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Convex" -msgstr "Mover Polígono" +msgstr "Fazer Polígono Convexo" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7262,9 +7254,8 @@ msgid "Exporting All" msgstr "A Exportar Tudo" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "O Caminho não existe." +msgstr "O caminho de exportação não existe:" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -10200,9 +10191,8 @@ msgid "Please Confirm..." msgstr "Confirme por favor..." #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "Ir para a pasta acima" +msgstr "Ir para a pasta acima." #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 8698cf7d07..304755970c 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -5,12 +5,13 @@ # J08nY <johnenter@gmail.com>, 2016. # MineGame 159 <minegame459@gmail.com>, 2018. # Zuzana Palenikova <sousana.is@gmail.com>, 2019. +# MineGame159 <petulko08@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-02-01 12:10+0000\n" -"Last-Translator: Zuzana Palenikova <sousana.is@gmail.com>\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" +"Last-Translator: MineGame159 <petulko08@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/" "godot/sk/>\n" "Language: sk\n" @@ -18,7 +19,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 3.5-dev\n" +"X-Generator: Weblate 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -63,7 +64,7 @@ msgstr "Pri volaní '%s':" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Free" -msgstr "" +msgstr "Voľné" #: editor/animation_bezier_editor.cpp msgid "Balanced" @@ -91,17 +92,16 @@ msgid "Add Bezier Point" msgstr "Signály:" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Move Bezier Points" -msgstr "Všetky vybrané" +msgstr "Presunúť Vybraté Body" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" -msgstr "" +msgstr "Animácia Duplikovať Kľúče" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Delete Keys" -msgstr "" +msgstr "Animácia Vymazať Kľúče" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Time" @@ -126,12 +126,12 @@ msgstr "Animácia Zmeniť Hovor" #: editor/animation_track_editor.cpp msgid "Change Animation Length" -msgstr "" +msgstr "Zmeniť Dĺžku Animácie" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "Zmeniť Dĺžku Animácie" #: editor/animation_track_editor.cpp msgid "Property Track" @@ -163,7 +163,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Animation Length Time (seconds)" -msgstr "" +msgstr "Dĺžka Času Animácie (v sekundách)" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -172,15 +172,15 @@ msgstr "" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "" +msgstr "Funkcie:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "" +msgstr "Zvukové Klipy:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "Klipy Animácie:" #: editor/animation_track_editor.cpp msgid "Change Track Path" @@ -196,7 +196,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" -msgstr "" +msgstr "Režim Interpolácie" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" @@ -209,7 +209,7 @@ msgstr "Všetky vybrané" #: editor/animation_track_editor.cpp msgid "Time (s): " -msgstr "" +msgstr "Čas (s): " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" @@ -221,28 +221,28 @@ msgstr "Priebežný" #: editor/animation_track_editor.cpp msgid "Discrete" -msgstr "" +msgstr "Diskrétne" #: editor/animation_track_editor.cpp msgid "Trigger" -msgstr "" +msgstr "Spúšť" #: editor/animation_track_editor.cpp msgid "Capture" -msgstr "" +msgstr "Zachytiť" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "Najbližší" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp msgid "Linear" -msgstr "" +msgstr "Lineárne" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "" +msgstr "Kubický" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" @@ -255,7 +255,7 @@ msgstr "" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "Vložiť Kľúč" #: editor/animation_track_editor.cpp #, fuzzy @@ -298,19 +298,19 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" -msgstr "" +msgstr "Vytvoriť" #: editor/animation_track_editor.cpp msgid "Anim Insert" -msgstr "" +msgstr "Animácia Vložiť" #: editor/animation_track_editor.cpp msgid "AnimationPlayer can't animate itself, only other players." -msgstr "" +msgstr "AnimationPlayer nemôže animovať sám seba, iba ostatný hráči." #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" -msgstr "" +msgstr "Animácia Vytvoriť & Vložiť" #: editor/animation_track_editor.cpp msgid "Anim Insert Track & Key" @@ -318,7 +318,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Anim Insert Key" -msgstr "" +msgstr "Animácia Vložiť Kľúč" #: editor/animation_track_editor.cpp #, fuzzy @@ -341,6 +341,10 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" +"Audio stopy môžu ukazovať len na nodes typu:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." @@ -640,13 +644,13 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Connect To Node:" -msgstr "" +msgstr "Pripojiť k Node:" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp msgid "Add" -msgstr "" +msgstr "Pridať" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp @@ -655,7 +659,7 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" -msgstr "" +msgstr "Odstrániť" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" @@ -667,7 +671,7 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Path to Node:" -msgstr "" +msgstr "Cesta k Node:" #: editor/connections_dialog.cpp msgid "Make Function" @@ -693,102 +697,99 @@ msgstr "" #: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Close" -msgstr "" +msgstr "Zatvoriť" #: editor/connections_dialog.cpp msgid "Connect" -msgstr "" +msgstr "Pripojiť" #: editor/connections_dialog.cpp msgid "Connect '%s' to '%s'" -msgstr "" +msgstr "Pripojiť '%s' k '%s'" #: editor/connections_dialog.cpp msgid "Disconnect '%s' from '%s'" -msgstr "" +msgstr "Odpojiť '%s' z '%s'" #: editor/connections_dialog.cpp msgid "Disconnect all from signal: '%s'" -msgstr "" +msgstr "Opojiť všetky z signálu: '%s'" #: editor/connections_dialog.cpp msgid "Connect..." -msgstr "" +msgstr "Pripojiť..." #: editor/connections_dialog.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Disconnect" -msgstr "" +msgstr "Odpojiť" #: editor/connections_dialog.cpp -#, fuzzy msgid "Connect Signal: " -msgstr "Všetky vybrané" +msgstr "Pripojiť Signál: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Edit Connection: " -msgstr "Upraviť výber krivky" +msgstr "Upraviť Pripojenie: " #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "" +msgstr "Naozaj chcete odstrániť všetky pripojenia z \"%s\" signálu?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" -msgstr "" +msgstr "Signály" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" -msgstr "" +msgstr "Naozaj chcete odstrániť všetky pripojenia z tohto signálu?" #: editor/connections_dialog.cpp msgid "Disconnect All" -msgstr "" +msgstr "Opojiť Všetko" #: editor/connections_dialog.cpp msgid "Edit..." -msgstr "" +msgstr "Upraviť..." #: editor/connections_dialog.cpp msgid "Go To Method" -msgstr "" +msgstr "Prejdite na Metódu" #: editor/create_dialog.cpp msgid "Change %s Type" -msgstr "" +msgstr "Zmeniť %s Typ" #: editor/create_dialog.cpp editor/project_settings_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Change" -msgstr "" +msgstr "Zmeniť" #: editor/create_dialog.cpp -#, fuzzy msgid "Create New %s" -msgstr "Vytvoriť adresár" +msgstr "Vytvoriť Nový %s" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp msgid "Favorites:" -msgstr "" +msgstr "Obľúbené:" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp msgid "Recent:" -msgstr "" +msgstr "Nedávne:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp #: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" -msgstr "" +msgstr "Hľadať:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Matches:" -msgstr "" +msgstr "Zhody:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp #: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp @@ -798,17 +799,19 @@ msgstr "Popis:" #: editor/dependency_editor.cpp msgid "Search Replacement For:" -msgstr "" +msgstr "Hľadať Náhradu pre:" #: editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "" +msgstr "Závislosti pre:" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" "Changes will not take effect unless reloaded." msgstr "" +"Scéna '%s' sa práve upravuje.\n" +"Zmeny sa neprejavia, pokiaľ znovu načítané." #: editor/dependency_editor.cpp msgid "" @@ -819,32 +822,32 @@ msgstr "" #: editor/dependency_editor.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Dependencies" -msgstr "" +msgstr "Závislostí" #: editor/dependency_editor.cpp msgid "Resource" -msgstr "" +msgstr "Prostriedok" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp #: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" -msgstr "" +msgstr "Cesta" #: editor/dependency_editor.cpp msgid "Dependencies:" -msgstr "" +msgstr "Závislostí:" #: editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "" +msgstr "Opraviť Rozbité" #: editor/dependency_editor.cpp msgid "Dependency Editor" -msgstr "" +msgstr "Editor Závislostí" #: editor/dependency_editor.cpp msgid "Search Replacement Resource:" -msgstr "" +msgstr "Hľadať Náhradný Zdroj:" #: editor/dependency_editor.cpp editor/editor_file_dialog.cpp #: editor/editor_help_search.cpp editor/editor_node.cpp @@ -858,11 +861,11 @@ msgstr "Otvoriť" #: editor/dependency_editor.cpp msgid "Owners Of:" -msgstr "" +msgstr "Majitelia:" #: editor/dependency_editor.cpp msgid "Remove selected files from the project? (no undo)" -msgstr "" +msgstr "Odstrániť vybraté súbory z projektu? (nedá sa vrátiť späť)" #: editor/dependency_editor.cpp msgid "" @@ -870,46 +873,48 @@ msgid "" "work.\n" "Remove them anyway? (no undo)" msgstr "" +"Súbory ktoré budú odstránené vyžadujú ďalšie zdroje, aby mohli pracovať.\n" +"Odstrániť aj napriek tomu? (nedá sa vrátiť späť)" #: editor/dependency_editor.cpp editor/export_template_manager.cpp msgid "Cannot remove:" -msgstr "" +msgstr "Nemôžete odstrániť:" #: editor/dependency_editor.cpp msgid "Error loading:" -msgstr "" +msgstr "Chyba pri načítaní:" #: editor/dependency_editor.cpp msgid "Load failed due to missing dependencies:" -msgstr "" +msgstr "Načítanie zlyhalo z dôvodu chýbajúcich závislostí:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" -msgstr "" +msgstr "Otvoriť aj napriek tomu" #: editor/dependency_editor.cpp msgid "Which action should be taken?" -msgstr "" +msgstr "Ktorá akcia by sa mala prijať?" #: editor/dependency_editor.cpp msgid "Fix Dependencies" -msgstr "" +msgstr "Opraviť Závislosti" #: editor/dependency_editor.cpp msgid "Errors loading!" -msgstr "" +msgstr "Chyby pri načítaní!" #: editor/dependency_editor.cpp msgid "Permanently delete %d item(s)? (No undo!)" -msgstr "" +msgstr "Natrvalo odstrániť %d položky? (Nedá sa vrátiť späť!)" #: editor/dependency_editor.cpp msgid "Owns" -msgstr "" +msgstr "Vlastní" #: editor/dependency_editor.cpp msgid "Resources Without Explicit Ownership:" -msgstr "" +msgstr "Zdroje Bez Výslovného Vlastníctva:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" @@ -917,7 +922,7 @@ msgstr "" #: editor/dependency_editor.cpp msgid "Delete selected files?" -msgstr "" +msgstr "Odstrániť vybraté súbory?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp @@ -925,79 +930,79 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp #: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" -msgstr "" +msgstr "Vymazať" #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" -msgstr "" +msgstr "Zmeniť Kľúč v Slovníku" #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Value" -msgstr "" +msgstr "Zmeniť Hodnotu v Slovníku" #: editor/editor_about.cpp msgid "Thanks from the Godot community!" -msgstr "" +msgstr "Vďaka z Godot komunity!" #: editor/editor_about.cpp msgid "Godot Engine contributors" -msgstr "" +msgstr "Godot Engine prispievatelia" #: editor/editor_about.cpp msgid "Project Founders" -msgstr "" +msgstr "Zakladatelia Projektu" #: editor/editor_about.cpp msgid "Lead Developer" -msgstr "" +msgstr "Vedúci Vývojár" #: editor/editor_about.cpp msgid "Project Manager " -msgstr "" +msgstr "Manažér Projektu " #: editor/editor_about.cpp msgid "Developers" -msgstr "" +msgstr "Vývojári" #: editor/editor_about.cpp msgid "Authors" -msgstr "" +msgstr "Autori" #: editor/editor_about.cpp msgid "Platinum Sponsors" -msgstr "" +msgstr "Platinový Sponzori" #: editor/editor_about.cpp msgid "Gold Sponsors" -msgstr "" +msgstr "Zlatý Sponzori" #: editor/editor_about.cpp msgid "Mini Sponsors" -msgstr "" +msgstr "Malý Sponzori" #: editor/editor_about.cpp msgid "Gold Donors" -msgstr "" +msgstr "Zlatý Darcovia" #: editor/editor_about.cpp msgid "Silver Donors" -msgstr "" +msgstr "Strieborný Darcovia" #: editor/editor_about.cpp msgid "Bronze Donors" -msgstr "" +msgstr "Bronzový Darcovia" #: editor/editor_about.cpp msgid "Donors" -msgstr "" +msgstr "Darcovia" #: editor/editor_about.cpp msgid "License" -msgstr "" +msgstr "Licencia" #: editor/editor_about.cpp msgid "Thirdparty License" -msgstr "" +msgstr "Thirdparty Licencie" #: editor/editor_about.cpp msgid "" @@ -1008,22 +1013,21 @@ msgid "" msgstr "" #: editor/editor_about.cpp -#, fuzzy msgid "All Components" -msgstr "Konštanty:" +msgstr "Všetky Komponenty" #: editor/editor_about.cpp #, fuzzy msgid "Components" -msgstr "Konštanty:" +msgstr "Komponenty" #: editor/editor_about.cpp msgid "Licenses" -msgstr "" +msgstr "Licencie" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Error opening package file, not in zip format." -msgstr "" +msgstr "Chyba pri otváraní súboru balíka, nie je vo formáte zip." #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" @@ -1031,29 +1035,29 @@ msgstr "" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Package installed successfully!" -msgstr "" +msgstr "Balík bol úspešne nainštalovaný!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Success!" -msgstr "" +msgstr "Úspech!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" -msgstr "" +msgstr "Inštalovať" #: editor/editor_asset_installer.cpp msgid "Package Installer" -msgstr "" +msgstr "Inštalátor Balíkov" #: editor/editor_audio_buses.cpp msgid "Speakers" -msgstr "" +msgstr "Reproduktory" #: editor/editor_audio_buses.cpp msgid "Add Effect" -msgstr "" +msgstr "Pridať Efekt" #: editor/editor_audio_buses.cpp #, fuzzy @@ -1099,15 +1103,15 @@ msgstr "" #: editor/editor_audio_buses.cpp msgid "Solo" -msgstr "" +msgstr "Sólo" #: editor/editor_audio_buses.cpp msgid "Mute" -msgstr "" +msgstr "Stlmiť" #: editor/editor_audio_buses.cpp msgid "Bypass" -msgstr "" +msgstr "Obísť" #: editor/editor_audio_buses.cpp msgid "Bus options" @@ -1116,19 +1120,19 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Duplicate" -msgstr "" +msgstr "Duplikovať" #: editor/editor_audio_buses.cpp msgid "Reset Volume" -msgstr "" +msgstr "Obnoviť Hlasitosť" #: editor/editor_audio_buses.cpp msgid "Delete Effect" -msgstr "" +msgstr "Odstrániť Efekt" #: editor/editor_audio_buses.cpp msgid "Audio" -msgstr "" +msgstr "Audio" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus" @@ -1168,7 +1172,7 @@ msgstr "" #: editor/editor_audio_buses.cpp msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "" +msgstr "Neexistuje žiadny súbor \"res://default_bus_layout.tres\"." #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1186,7 +1190,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp #: editor/script_create_dialog.cpp msgid "Load" -msgstr "" +msgstr "Načítať" #: editor/editor_audio_buses.cpp #, fuzzy @@ -1195,7 +1199,7 @@ msgstr "Popis:" #: editor/editor_audio_buses.cpp msgid "Save As" -msgstr "" +msgstr "Uložiť Ako" #: editor/editor_audio_buses.cpp msgid "Save this Bus Layout to a file." @@ -1203,7 +1207,7 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/import_dock.cpp msgid "Load Default" -msgstr "" +msgstr "Načítať predvolené" #: editor/editor_audio_buses.cpp msgid "Load the default Bus Layout." @@ -1215,7 +1219,7 @@ msgstr "" #: editor/editor_autoload_settings.cpp msgid "Invalid name." -msgstr "" +msgstr "Neplatný Názov." #: editor/editor_autoload_settings.cpp msgid "Valid characters:" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index d35ffa3a67..93f72238a2 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-08 15:04+0000\n" +"PO-Revision-Date: 2019-03-12 15:26+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -23,9 +23,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.5.1-dev\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 3.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1371,33 +1371,31 @@ msgid "Packing" msgstr "Пакування" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" "Платформа призначення потребує стискання текстур «ETC» для GLES2. Увімкніть " -"підтримку у параметрах проекту." +"пункт «Імпортувати ETC» у параметрах проекту." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"Платформа призначення потребує стискання текстур «ETC» для GLES2. Увімкніть " -"підтримку у параметрах проекту." +"Платформа призначення потребує стискання текстур «ETC2» для GLES3. Увімкніть " +"пункт «Імпортувати ETC 2» у параметрах проекту." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"Платформа призначення потребує стискання текстур «ETC» для GLES2. Увімкніть " -"підтримку у параметрах проекту." +"Платформа призначення потребує стискання текстур «ETC» для GLES2.\n" +"Увімкніть пункт «Імпортувати ETC» у параметрах проекту або вимкніть пункт «" +"Увімкнено резервні драйвери»." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1520,23 +1518,20 @@ msgid "Move Favorite Down" msgstr "Перемістити вибране вниз" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Попередній поверх" +msgstr "Попередня тека" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Наступний поверх" +msgstr "Наступна тека" #: editor/editor_file_dialog.cpp msgid "Go to parent folder" msgstr "Перейти до батьківської теки" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "Неможливо створити теку." +msgstr "Перемкнути стан вибраності для поточної теки." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -1770,7 +1765,7 @@ msgstr "Не вдалося експортувати проект, код пом #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Неможливо зберегти імпортовані ресурси." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1786,6 +1781,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Цей ресурс неможливо зберегти, оскільки він не належить до редагованої " +"сцени. Спочатку, зробіть його унікальним." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -6973,22 +6970,20 @@ msgid "Merge from Scene" msgstr "Об'єднати зі сцени" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "Наступний поверх" +msgstr "Наступна координата" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." -msgstr "" +msgstr "Вибір наступної форми, підплитки або плитки." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Попередній поверх" +msgstr "Попередня координата" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." -msgstr "" +msgstr "Вибір попередньої форми, підплитки або плитки." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." @@ -7148,14 +7143,12 @@ msgid "Clear Tile Bitmask" msgstr "Спорожнити бітову маску плитки" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Concave" -msgstr "Перемістити полігон" +msgstr "Зробити полігон увігнутим" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Make Polygon Convex" -msgstr "Перемістити полігон" +msgstr "Зробити полігон опуклим" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7280,9 +7273,8 @@ msgid "Exporting All" msgstr "Експортування усього" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "Шляху не існує." +msgstr "Вказаного шляху для експортування не існує:" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -7736,7 +7728,7 @@ msgid "" "'\"'" msgstr "" "Некоректна назва дії. Назва не може бути порожньою і не може містити " -"символів «/», «:», «=», «\\» та «\"»." +"символів «/», «:», «=», «\\» та «\"»" #: editor/project_settings_editor.cpp msgid "Action '%s' already exists!" @@ -10016,6 +10008,8 @@ msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." msgstr "" +"Форми площин не працюють як слід, їх буде вилучено у наступних версіях. Будь " +"ласка, не використовуйте їх." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." @@ -10038,6 +10032,8 @@ msgid "" "GIProbes are not supported by the GLES2 video driver.\n" "Use a BakedLightmap instead." msgstr "" +"У драйвері GLES2 не передбачено підтримки GIProbes.\n" +"Скористайтеся замість них BakedLightmap." #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." @@ -10220,6 +10216,10 @@ msgid "" "If you dont't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" +"Сам контейнер не має призначення, якщо скрипт не налаштовує поведінку щодо " +"розташування його дочірніх об'єктів.\n" +"Якщо ви не маєте наміру додавати скрипт, будь ласка, скористайтеся замість " +"контейнера звичайним вузлом «Control»." #: scene/gui/dialogs.cpp msgid "Alert!" @@ -10230,9 +10230,8 @@ msgid "Please Confirm..." msgstr "Будь ласка, підтвердьте..." #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "Перейти до батьківської теки" +msgstr "Перейти до батьківської теки." #: scene/gui/popup.cpp msgid "" diff --git a/main/main.cpp b/main/main.cpp index 3dff9d89bd..0871b12338 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1209,6 +1209,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { GLOBAL_DEF("display/mouse_cursor/custom_image", String()); GLOBAL_DEF("display/mouse_cursor/custom_image_hotspot", Vector2()); + GLOBAL_DEF("display/mouse_cursor/tooltip_position_offset", Point2(10, 10)); ProjectSettings::get_singleton()->set_custom_property_info("display/mouse_cursor/custom_image", PropertyInfo(Variant::STRING, "display/mouse_cursor/custom_image", PROPERTY_HINT_FILE, "*.png,*.webp")); if (String(ProjectSettings::get_singleton()->get("display/mouse_cursor/custom_image")) != String()) { diff --git a/main/tests/test_gdscript.cpp b/main/tests/test_gdscript.cpp index 55e31a18c3..27180f84aa 100644 --- a/main/tests/test_gdscript.cpp +++ b/main/tests/test_gdscript.cpp @@ -563,7 +563,7 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String case GDScriptFunction::OPCODE_OPERATOR: { int op = code[ip + 1]; - txt += "op "; + txt += " op "; String opname = Variant::get_operator_name(Variant::Operator(op)); diff --git a/misc/dist/linux/godot.6 b/misc/dist/linux/godot.6 index 078f8bcf91..4860c7b5a8 100644 --- a/misc/dist/linux/godot.6 +++ b/misc/dist/linux/godot.6 @@ -1,4 +1,4 @@ -.TH GODOT "6" "January 2019" "godot 3.1" "Games" +.TH GODOT "6" "March 2019" "godot 3.2" "Games" .SH NAME godot \- multi\-platform 2D and 3D game engine with a feature\-rich editor .SH SYNOPSIS diff --git a/misc/dist/osx_tools.app/Contents/Info.plist b/misc/dist/osx_tools.app/Contents/Info.plist index 2d6fa4d059..1a116527bb 100755 --- a/misc/dist/osx_tools.app/Contents/Info.plist +++ b/misc/dist/osx_tools.app/Contents/Info.plist @@ -19,11 +19,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>3.1</string> + <string>3.2</string> <key>CFBundleSignature</key> <string>godot</string> <key>CFBundleVersion</key> - <string>3.1</string> + <string>3.2</string> <key>NSHumanReadableCopyright</key> <string>© 2007-2019 Juan Linietsky, Ariel Manzur & Godot Engine contributors</string> <key>LSMinimumSystemVersion</key> diff --git a/modules/csg/csg_gizmos.cpp b/modules/csg/csg_gizmos.cpp index 3044887ef5..d4069b901f 100644 --- a/modules/csg/csg_gizmos.cpp +++ b/modules/csg/csg_gizmos.cpp @@ -283,6 +283,10 @@ String CSGShapeSpatialGizmoPlugin::get_name() const { return "CSGShapes"; } +int CSGShapeSpatialGizmoPlugin::get_priority() const { + return -1; +} + bool CSGShapeSpatialGizmoPlugin::is_selectable_when_hidden() const { return true; } diff --git a/modules/csg/csg_gizmos.h b/modules/csg/csg_gizmos.h index b208c39938..0915d05111 100644 --- a/modules/csg/csg_gizmos.h +++ b/modules/csg/csg_gizmos.h @@ -42,6 +42,7 @@ class CSGShapeSpatialGizmoPlugin : public EditorSpatialGizmoPlugin { public: bool has_gizmo(Spatial *p_spatial); String get_name() const; + int get_priority() const; bool is_selectable_when_hidden() const; void redraw(EditorSpatialGizmo *p_gizmo); diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp index b2b7b1c260..5f521c682a 100644 --- a/modules/gdscript/gdscript_compiler.cpp +++ b/modules/gdscript/gdscript_compiler.cpp @@ -1396,11 +1396,6 @@ Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::Blo case GDScriptParser::ControlFlowNode::CF_IF: { -#ifdef DEBUG_ENABLED - codegen.opcodes.push_back(GDScriptFunction::OPCODE_LINE); - codegen.opcodes.push_back(cf->line); - codegen.current_line = cf->line; -#endif int ret2 = _parse_expression(codegen, cf->arguments[0], p_stack_level, false); if (ret2 < 0) return ERR_PARSE_ERROR; diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index f005f88d2e..da69181a43 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -2741,6 +2741,8 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { } break; case GDScriptTokenizer::TK_NEWLINE: { + int line = tokenizer->get_token_line(); + if (!_parse_newline()) { if (!error_set) { p_block->end_line = tokenizer->get_token_line(); @@ -2750,7 +2752,7 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { } NewLineNode *nl2 = alloc_node<NewLineNode>(); - nl2->line = tokenizer->get_token_line(); + nl2->line = line; p_block->statements.push_back(nl2); } break; diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 04405e0c1d..e33b238f45 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -1933,6 +1933,9 @@ void CSharpScript::_update_exports_values(Map<StringName, Variant> &values, List bool CSharpScript::_update_exports() { #ifdef TOOLS_ENABLED + if (!Engine::get_singleton()->is_editor_hint()) + return false; + placeholder_fallback_enabled = true; // until proven otherwise if (!valid) diff --git a/modules/mono/editor/godotsharp_editor.cpp b/modules/mono/editor/godotsharp_editor.cpp index c7bb72c1fb..921b9f987b 100644 --- a/modules/mono/editor/godotsharp_editor.cpp +++ b/modules/mono/editor/godotsharp_editor.cpp @@ -457,12 +457,12 @@ GodotSharpEditor::GodotSharpEditor(EditorNode *p_editor) { about_label->set_v_size_flags(Control::SIZE_EXPAND_FILL); about_label->set_autowrap(true); String about_text = - String("C# support in Godot Engine is a brand new feature and a work in progress.\n") + - "It is currently in an alpha stage and is not suitable for use in production.\n\n" + - "As of Godot 3.1, C# support is not feature-complete and may crash in some situations. " + - "Bugs and usability issues will be addressed gradually over future 3.x releases, " + - "including compatibility breaking changes as new features are implemented for a better overall C# experience.\n\n" + - "If you experience issues with this Mono build, please report them on Godot's issue tracker with details about your system, Mono version, IDE, etc:\n\n" + + String("C# support in Godot Engine is in late alpha stage and, while already usable, ") + + "it is not meant for use in production.\n\n" + + "Projects can be exported to Linux, macOS and Windows, but not yet to mobile or web platforms. " + + "Bugs and usability issues will be addressed gradually over future releases, " + + "potentially including compatibility breaking changes as new features are implemented for a better overall C# experience.\n\n" + + "If you experience issues with this Mono build, please report them on Godot's issue tracker with details about your system, MSBuild version, IDE, etc.:\n\n" + " https://github.com/godotengine/godot/issues\n\n" + "Your critical feedback at this stage will play a great role in shaping the C# support in future releases, so thank you!"; about_label->set_text(about_text); diff --git a/platform/iphone/app_delegate.mm b/platform/iphone/app_delegate.mm index d160553050..64405bfa5b 100644 --- a/platform/iphone/app_delegate.mm +++ b/platform/iphone/app_delegate.mm @@ -615,18 +615,6 @@ static int frame_count = 0; // Create a full-screen window window = [[UIWindow alloc] initWithFrame:rect]; - // window.autoresizesSubviews = YES; - //[window setAutoresizingMask:UIViewAutoresizingFlexibleWidth | - // UIViewAutoresizingFlexibleWidth]; - - // Create the OpenGL ES view and add it to the window - GLView *glView = [[GLView alloc] initWithFrame:rect]; - printf("glview is %p\n", glView); - //[window addSubview:glView]; - glView.delegate = self; - // glView.autoresizesSubviews = YES; - //[glView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | - // UIViewAutoresizingFlexibleWidth]; OS::VideoMode vm = _get_video_mode(); @@ -641,6 +629,12 @@ static int frame_count = 0; return FALSE; }; + // WARNING: We must *always* create the GLView after we have constructed the + // OS with iphone_main. This allows the GLView to access project settings so + // it can properly initialize the OpenGL context + GLView *glView = [[GLView alloc] initWithFrame:rect]; + glView.delegate = self; + view_controller = [[ViewController alloc] init]; view_controller.view = glView; window.rootViewController = view_controller; diff --git a/platform/iphone/gl_view.mm b/platform/iphone/gl_view.mm index 6f4d0ddb57..1cb8d0e44e 100644 --- a/platform/iphone/gl_view.mm +++ b/platform/iphone/gl_view.mm @@ -284,19 +284,37 @@ static void clear_touches() { kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil]; + bool fallback_gl2 = false; + // Create a GL ES 3 context based on the gl driver from project settings + if (GLOBAL_GET("rendering/quality/driver/driver_name") == "GLES3") { + context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]; + NSLog(@"Setting up an OpenGL ES 3.0 context. Based on Project Settings \"rendering/quality/driver/driver_name\""); + if (!context && GLOBAL_GET("rendering/quality/driver/fallback_to_gles2")) { + gles3_available = false; + fallback_gl2 = true; + NSLog(@"Failed to create OpenGL ES 3.0 context. Falling back to OpenGL ES 2.0"); + } + } - // Create our EAGLContext, and if successful make it current and create our framebuffer. - context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]; - - if (!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) { + // Create GL ES 2 context + if (GLOBAL_GET("rendering/quality/driver/driver_name") == "GLES2" || fallback_gl2) { context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; - gles3_available = false; - if (!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) { - [self release]; + NSLog(@"Setting up an OpenGL ES 2.0 context."); + if (!context) { + NSLog(@"Failed to create OpenGL ES 2.0 context!"); return nil; } } + if (![EAGLContext setCurrentContext:context]) { + NSLog(@"Failed to set EAGLContext!"); + return nil; + } + if (![self createFramebuffer]) { + NSLog(@"Failed to create frame buffer!"); + return nil; + } + // Default the animation interval to 1/60th of a second. animationInterval = 1.0 / 60.0; return self; diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index 871a8769d9..487da77b10 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -114,6 +114,9 @@ void EditorExportPlatformJavaScript::get_preset_features(const Ref<EditorExportP r_features->push_back("etc"); } else if (driver == "GLES3") { r_features->push_back("etc2"); + if (ProjectSettings::get_singleton()->get("rendering/quality/driver/fallback_to_gles2")) { + r_features->push_back("etc"); + } } } } diff --git a/platform/windows/godot.natvis b/platform/windows/godot.natvis index 01963035a1..55c83c3f3c 100644 --- a/platform/windows/godot.natvis +++ b/platform/windows/godot.natvis @@ -2,92 +2,109 @@ <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> <Type Name="Vector<*>"> <Expand> - <Item Name="size">(_cowdata && _cowdata->_ptr) ? (((const unsigned int *)(_cowdata->_ptr))[-1]) : 0</Item> + <Item Name="[size]">_cowdata._ptr ? (((const unsigned int *)(_cowdata._ptr))[-1]) : 0</Item> <ArrayItems> - <Size>(_cowdata && _cowdata->_ptr) ? (((const unsigned int *)(_cowdata->_ptr))[-1]) : 0</Size> - <ValuePointer>(_cowdata) ? (_cowdata->_ptr) : 0</ValuePointer> + <Size>_cowdata._ptr ? (((const unsigned int *)(_cowdata._ptr))[-1]) : 0</Size> + <ValuePointer>_cowdata._ptr</ValuePointer> </ArrayItems> </Expand> </Type> <Type Name="PoolVector<*>"> <Expand> - <Item Name="size">alloc ? (alloc->size / sizeof($T1)) : 0</Item> + <Item Name="[size]">alloc ? (alloc->size / sizeof($T1)) : 0</Item> <ArrayItems> <Size>alloc ? (alloc->size / sizeof($T1)) : 0</Size> <ValuePointer>alloc ? (($T1 *)alloc->mem) : 0</ValuePointer> </ArrayItems> </Expand> </Type> + + <Type Name="List<*>"> + <Expand> + <Item Name="[size]">_data ? (_data->size_cache) : 0</Item> + <LinkedListItems> + <Size>_data ? (_data->size_cache) : 0</Size> + <HeadPointer>_data->first</HeadPointer> + <NextPointer>next_ptr</NextPointer> + <ValueNode>value</ValueNode> + </LinkedListItems> + </Expand> + </Type> <Type Name="Variant"> - <DisplayString Condition="this->type == Variant::NIL">nil</DisplayString> - <DisplayString Condition="this->type == Variant::BOOL">{_data._bool}</DisplayString> - <DisplayString Condition="this->type == Variant::INT">{_data._int}</DisplayString> - <DisplayString Condition="this->type == Variant::REAL">{_data._real}</DisplayString> - <DisplayString Condition="this->type == Variant::TRANSFORM2D">{_data._transform2d}</DisplayString> - <DisplayString Condition="this->type == Variant::AABB">{_data._aabb}</DisplayString> - <DisplayString Condition="this->type == Variant::BASIS">{_data._basis}</DisplayString> - <DisplayString Condition="this->type == Variant::TRANSFORM">{_data._transform}</DisplayString> - <DisplayString Condition="this->type == Variant::ARRAY">{*(Array *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::STRING && ((String *)(&_data._mem[0]))->_cowdata._ptr == 0">""</DisplayString> - <DisplayString Condition="this->type == Variant::STRING && ((String *)(&_data._mem[0]))->_cowdata._ptr != 0">{((String *)(&_data._mem[0]))->_cowdata._ptr,su}</DisplayString> - <DisplayString Condition="this->type == Variant::VECTOR2">{*(Vector2 *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::RECT2">{*(Rect2 *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::VECTOR3">{*(Vector3 *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::PLANE">{*(Plane *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::QUAT">{*(Quat *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::COLOR">{*(Color *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::NODE_PATH">{*(NodePath *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::_RID">{*(RID *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::OBJECT">{*(Object *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::DICTIONARY">{*(Dictionary *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::ARRAY">{*(Array *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::POOL_BYTE_ARRAY">{*(PoolByteArray *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::POOL_INT_ARRAY">{*(PoolIntArray *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::POOL_REAL_ARRAY">{*(PoolRealArray *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::POOL_STRING_ARRAY">{*(PoolStringArray *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::POOL_VECTOR2_ARRAY">{*(PoolVector2Array *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::POOL_VECTOR3_ARRAY">{*(PoolVector3Array *)_data._mem}</DisplayString> - <DisplayString Condition="this->type == Variant::POOL_COLOR_ARRAY">{*(PoolColorArray *)_data._mem}</DisplayString> - - <StringView Condition="this->type == Variant::STRING && ((String *)(&_data._mem[0]))->_cowdata._ptr != 0">((String *)(&_data._mem[0]))->_cowdata._ptr,su</StringView> + <DisplayString Condition="type == Variant::NIL">nil</DisplayString> + <DisplayString Condition="type == Variant::BOOL">{_data._bool}</DisplayString> + <DisplayString Condition="type == Variant::INT">{_data._int}</DisplayString> + <DisplayString Condition="type == Variant::REAL">{_data._real}</DisplayString> + <DisplayString Condition="type == Variant::TRANSFORM2D">{_data._transform2d}</DisplayString> + <DisplayString Condition="type == Variant::AABB">{_data._aabb}</DisplayString> + <DisplayString Condition="type == Variant::BASIS">{_data._basis}</DisplayString> + <DisplayString Condition="type == Variant::TRANSFORM">{_data._transform}</DisplayString> + <DisplayString Condition="type == Variant::STRING">{*(String *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::VECTOR2">{*(Vector2 *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::RECT2">{*(Rect2 *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::VECTOR3">{*(Vector3 *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::PLANE">{*(Plane *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::QUAT">{*(Quat *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::COLOR">{*(Color *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::NODE_PATH">{*(NodePath *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::_RID">{*(RID *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::OBJECT">{*(Object *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::DICTIONARY">{*(Dictionary *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::ARRAY">{*(Array *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::POOL_BYTE_ARRAY">{*(PoolByteArray *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::POOL_INT_ARRAY">{*(PoolIntArray *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::POOL_REAL_ARRAY">{*(PoolRealArray *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::POOL_STRING_ARRAY">{*(PoolStringArray *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::POOL_VECTOR2_ARRAY">{*(PoolVector2Array *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::POOL_VECTOR3_ARRAY">{*(PoolVector3Array *)_data._mem}</DisplayString> + <DisplayString Condition="type == Variant::POOL_COLOR_ARRAY">{*(PoolColorArray *)_data._mem}</DisplayString> + <StringView Condition="type == Variant::STRING && ((String *)(_data._mem))->_cowdata._ptr">((String *)(_data._mem))->_cowdata._ptr,su</StringView> + <Expand> - <Item Name="value" Condition="this->type == Variant::BOOL">_data._bool</Item> - <Item Name="value" Condition="this->type == Variant::INT">_data._int</Item> - <Item Name="value" Condition="this->type == Variant::REAL">_data._real</Item> - <Item Name="value" Condition="this->type == Variant::TRANSFORM2D">_data._transform2d</Item> - <Item Name="value" Condition="this->type == Variant::AABB">_data._aabb</Item> - <Item Name="value" Condition="this->type == Variant::BASIS">_data._basis</Item> - <Item Name="value" Condition="this->type == Variant::TRANSFORM">_data._transform</Item> - <Item Name="value" Condition="this->type == Variant::ARRAY">*(Array *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::STRING">*(String *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::VECTOR2">*(Vector2 *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::RECT2">*(Rect2 *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::VECTOR3">*(Vector3 *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::PLANE">*(Plane *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::QUAT">*(Quat *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::COLOR">*(Color *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::NODE_PATH">*(NodePath *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::_RID">*(RID *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::OBJECT">*(Object *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::DICTIONARY">*(Dictionary *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::ARRAY">*(Array *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::POOL_BYTE_ARRAY">*(PoolByteArray *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::POOL_INT_ARRAY">*(PoolIntArray *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::POOL_REAL_ARRAY">*(PoolRealArray *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::POOL_STRING_ARRAY">*(PoolStringArray *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::POOL_VECTOR2_ARRAY">*(PoolVector2Array *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::POOL_VECTOR3_ARRAY">*(PoolVector3Array *)_data._mem</Item> - <Item Name="value" Condition="this->type == Variant::POOL_COLOR_ARRAY">*(PoolColorArray *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::BOOL">_data._bool</Item> + <Item Name="[value]" Condition="type == Variant::INT">_data._int</Item> + <Item Name="[value]" Condition="type == Variant::REAL">_data._real</Item> + <Item Name="[value]" Condition="type == Variant::TRANSFORM2D">_data._transform2d</Item> + <Item Name="[value]" Condition="type == Variant::AABB">_data._aabb</Item> + <Item Name="[value]" Condition="type == Variant::BASIS">_data._basis</Item> + <Item Name="[value]" Condition="type == Variant::TRANSFORM">_data._transform</Item> + <Item Name="[value]" Condition="type == Variant::STRING">*(String *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::VECTOR2">*(Vector2 *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::RECT2">*(Rect2 *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::VECTOR3">*(Vector3 *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::PLANE">*(Plane *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::QUAT">*(Quat *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::COLOR">*(Color *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::NODE_PATH">*(NodePath *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::_RID">*(RID *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::OBJECT">*(Object *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::DICTIONARY">*(Dictionary *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::ARRAY">*(Array *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::POOL_BYTE_ARRAY">*(PoolByteArray *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::POOL_INT_ARRAY">*(PoolIntArray *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::POOL_REAL_ARRAY">*(PoolRealArray *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::POOL_STRING_ARRAY">*(PoolStringArray *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::POOL_VECTOR2_ARRAY">*(PoolVector2Array *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::POOL_VECTOR3_ARRAY">*(PoolVector3Array *)_data._mem</Item> + <Item Name="[value]" Condition="type == Variant::POOL_COLOR_ARRAY">*(PoolColorArray *)_data._mem</Item> </Expand> </Type> <Type Name="String"> - <DisplayString Condition="this->_cowdata._ptr == 0">empty</DisplayString> - <DisplayString Condition="this->_cowdata._ptr != 0">{this->_cowdata._ptr,su}</DisplayString> - <StringView Condition="this->_cowdata._ptr != 0">this->_cowdata._ptr,su</StringView> + <DisplayString Condition="_cowdata._ptr == 0">[empty]</DisplayString> + <DisplayString Condition="_cowdata._ptr != 0">{_cowdata._ptr,su}</DisplayString> + <StringView Condition="_cowdata._ptr != 0">_cowdata._ptr,su</StringView> + </Type> + + <Type Name="StringName"> + <DisplayString Condition="_data && _data->cname">{_data->cname}</DisplayString> + <DisplayString Condition="_data && !_data->cname">{_data->name,su}</DisplayString> + <DisplayString Condition="!_data">[empty]</DisplayString> + <StringView Condition="_data && _data->cname">_data->cname</StringView> + <StringView Condition="_data && !_data->cname">_data->name,su</StringView> </Type> <Type Name="Vector2"> diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 87b63c0982..0fe91f3d00 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -3048,11 +3048,12 @@ void OS_X11::set_context(int p_context) { if (p_context == CONTEXT_ENGINE) { classHint->res_name = (char *)"Godot_Engine"; - char *config_name_tmp = (char *)((String)GLOBAL_GET("application/config/name")).utf8().ptrw(); - if (config_name_tmp) - config_name = strdup(config_name_tmp); - else + String config_name_tmp = GLOBAL_GET("application/config/name"); + if (config_name_tmp.length() > 0) { + config_name = strdup(config_name_tmp.utf8().get_data()); + } else { config_name = strdup("Godot Engine"); + } wm_class = config_name; } diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index b32b50923a..a5d86c3e1a 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -1476,7 +1476,8 @@ void Viewport::_gui_show_tooltip() { gui.tooltip_popup->set_as_toplevel(true); //gui.tooltip_popup->hide(); - Rect2 r(gui.tooltip_pos + Point2(10, 10), gui.tooltip_popup->get_minimum_size()); + Point2 tooltip_offset = ProjectSettings::get_singleton()->get("display/mouse_cursor/tooltip_position_offset"); + Rect2 r(gui.tooltip_pos + tooltip_offset, gui.tooltip_popup->get_minimum_size()); Rect2 vr = gui.tooltip_popup->get_viewport_rect(); if (r.size.x + r.position.x > vr.size.x) r.position.x = vr.size.x - r.size.x; diff --git a/scene/resources/audio_stream_sample.cpp b/scene/resources/audio_stream_sample.cpp index a89cf108bc..4b3e392013 100644 --- a/scene/resources/audio_stream_sample.cpp +++ b/scene/resources/audio_stream_sample.cpp @@ -515,10 +515,10 @@ PoolVector<uint8_t> AudioStreamSample::get_data() const { return pv; } -void AudioStreamSample::save_to_wav(String p_path) { +Error AudioStreamSample::save_to_wav(const String &p_path) { if (format == AudioStreamSample::FORMAT_IMA_ADPCM) { WARN_PRINTS("Saving IMA_ADPC samples are not supported yet"); - return; + return ERR_UNAVAILABLE; } int sub_chunk_2_size = data_bytes; //Subchunk2Size = Size of data in bytes @@ -544,8 +544,9 @@ void AudioStreamSample::save_to_wav(String p_path) { file_path += ".wav"; } - Error err; - FileAccess *file = FileAccess::open(file_path, FileAccess::WRITE, &err); //Overrides existing file if present + FileAccessRef file = FileAccess::open(file_path, FileAccess::WRITE); //Overrides existing file if present + + ERR_FAIL_COND_V(!file, ERR_FILE_CANT_WRITE); // Create WAV Header file->store_string("RIFF"); //ChunkID @@ -583,6 +584,8 @@ void AudioStreamSample::save_to_wav(String p_path) { } file->close(); + + return OK; } Ref<AudioStreamPlayback> AudioStreamSample::instance_playback() { diff --git a/scene/resources/audio_stream_sample.h b/scene/resources/audio_stream_sample.h index bd701ddd12..d4c5511f34 100644 --- a/scene/resources/audio_stream_sample.h +++ b/scene/resources/audio_stream_sample.h @@ -141,7 +141,7 @@ public: void set_data(const PoolVector<uint8_t> &p_data); PoolVector<uint8_t> get_data() const; - void save_to_wav(String p_path); + Error save_to_wav(const String &p_path); virtual Ref<AudioStreamPlayback> instance_playback(); virtual String get_stream_name() const; diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp index 3dbe516f74..19c6106502 100644 --- a/servers/visual_server.cpp +++ b/servers/visual_server.cpp @@ -776,7 +776,7 @@ Error VisualServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint32_ continue; //break; ERR_FAIL_INDEX_V(idx, total_bones, ERR_INVALID_DATA); - if (bptr->size.x < 0) { + if (bptr[idx].size.x < 0) { //first bptr[idx] = AABB(v, SMALL_VEC3); any_valid = true; diff --git a/version.py b/version.py index dffefa4400..3d7def727d 100644 --- a/version.py +++ b/version.py @@ -1,7 +1,7 @@ short_name = "godot" name = "Godot Engine" major = 3 -minor = 1 -status = "rc" +minor = 2 +status = "dev" module_config = "" year = 2019 |