summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/classes/Color.xml3
-rw-r--r--doc/classes/Joint2D.xml2
-rw-r--r--doc/classes/OS.xml2
-rw-r--r--doc/classes/Vector2.xml3
-rw-r--r--doc/classes/Vector2i.xml3
-rw-r--r--doc/classes/Vector3.xml3
-rw-r--r--doc/classes/Vector3i.xml3
-rw-r--r--doc/classes/bool.xml13
-rw-r--r--editor/editor_export.cpp1
-rw-r--r--editor/icons/ToolButton.svg1
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp14
-rw-r--r--editor/project_settings_editor.cpp2
-rw-r--r--editor/translations/af.po5
-rw-r--r--editor/translations/ar.po5
-rw-r--r--editor/translations/bg.po4
-rw-r--r--editor/translations/bn.po5
-rw-r--r--editor/translations/ca.po5
-rw-r--r--editor/translations/cs.po11
-rw-r--r--editor/translations/da.po18
-rw-r--r--editor/translations/de.po5
-rw-r--r--editor/translations/editor.pot4
-rw-r--r--editor/translations/el.po5
-rw-r--r--editor/translations/eo.po5
-rw-r--r--editor/translations/es.po42
-rw-r--r--editor/translations/es_AR.po5
-rw-r--r--editor/translations/et.po4
-rw-r--r--editor/translations/eu.po4
-rw-r--r--editor/translations/fa.po5
-rw-r--r--editor/translations/fi.po5
-rw-r--r--editor/translations/fil.po4
-rw-r--r--editor/translations/fr.po4
-rw-r--r--editor/translations/ga.po4
-rw-r--r--editor/translations/he.po4
-rw-r--r--editor/translations/hi.po5
-rw-r--r--editor/translations/hr.po5
-rw-r--r--editor/translations/hu.po5
-rw-r--r--editor/translations/id.po5
-rw-r--r--editor/translations/is.po4
-rw-r--r--editor/translations/it.po60
-rw-r--r--editor/translations/ja.po5
-rw-r--r--editor/translations/ka.po5
-rw-r--r--editor/translations/ko.po5
-rw-r--r--editor/translations/lt.po5
-rw-r--r--editor/translations/lv.po5
-rw-r--r--editor/translations/mi.po4
-rw-r--r--editor/translations/ml.po4
-rw-r--r--editor/translations/mr.po4
-rw-r--r--editor/translations/ms.po4
-rw-r--r--editor/translations/nb.po14
-rw-r--r--editor/translations/nl.po19
-rw-r--r--editor/translations/or.po4
-rw-r--r--editor/translations/pl.po115
-rw-r--r--editor/translations/pr.po22
-rw-r--r--editor/translations/pt_BR.po216
-rw-r--r--editor/translations/pt_PT.po5
-rw-r--r--editor/translations/ro.po5
-rw-r--r--editor/translations/ru.po182
-rw-r--r--editor/translations/si.po4
-rw-r--r--editor/translations/sk.po5
-rw-r--r--editor/translations/sl.po5
-rw-r--r--editor/translations/sq.po4
-rw-r--r--editor/translations/sr_Cyrl.po5
-rw-r--r--editor/translations/sr_Latn.po4
-rw-r--r--editor/translations/sv.po5
-rw-r--r--editor/translations/ta.po4
-rw-r--r--editor/translations/te.po4
-rw-r--r--editor/translations/th.po5
-rw-r--r--editor/translations/tr.po5
-rw-r--r--editor/translations/uk.po5
-rw-r--r--editor/translations/ur_PK.po4
-rw-r--r--editor/translations/vi.po5
-rw-r--r--editor/translations/zh_CN.po78
-rw-r--r--editor/translations/zh_HK.po4
-rw-r--r--editor/translations/zh_TW.po11
-rw-r--r--modules/bullet/SCsub4
-rw-r--r--modules/bullet/space_bullet.cpp18
-rw-r--r--modules/csg/csg.cpp8
-rw-r--r--platform/haiku/SCsub25
-rw-r--r--platform/haiku/audio_driver_media_kit.cpp135
-rw-r--r--platform/haiku/audio_driver_media_kit.h74
-rw-r--r--platform/haiku/context_gl_haiku.cpp83
-rw-r--r--platform/haiku/context_gl_haiku.h62
-rw-r--r--platform/haiku/detect.py158
-rw-r--r--platform/haiku/godot.rdef60
-rw-r--r--platform/haiku/godot_haiku.cpp49
-rw-r--r--platform/haiku/haiku_application.cpp35
-rw-r--r--platform/haiku/haiku_application.h43
-rw-r--r--platform/haiku/haiku_direct_window.cpp363
-rw-r--r--platform/haiku/haiku_direct_window.h89
-rw-r--r--platform/haiku/haiku_gl_view.cpp47
-rw-r--r--platform/haiku/haiku_gl_view.h45
-rw-r--r--platform/haiku/key_mapping_haiku.cpp249
-rw-r--r--platform/haiku/key_mapping_haiku.h42
-rw-r--r--platform/haiku/logo.pngbin1265 -> 0 bytes
-rw-r--r--platform/haiku/os_haiku.cpp358
-rw-r--r--platform/haiku/os_haiku.h123
-rw-r--r--platform/haiku/platform_config.h36
-rw-r--r--scene/3d/camera_3d.cpp6
-rw-r--r--scene/gui/text_edit.cpp25
-rw-r--r--servers/physics_server_3d.cpp2
100 files changed, 738 insertions, 2468 deletions
diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml
index b35d4fb36a..17b474531e 100644
--- a/doc/classes/Color.xml
+++ b/doc/classes/Color.xml
@@ -5,8 +5,9 @@
</brief_description>
<description>
A color is represented by red, green, and blue [code](r, g, b)[/code] components. Additionally, [code]a[/code] represents the alpha component, often used for transparency. Values are in floating-point and usually range from 0 to 1. Some properties (such as [member CanvasItem.modulate]) may accept values greater than 1.
- You can also create a color from standardized color names by using [method @GDScript.ColorN] or directly using the color constants defined here. The standardized color set is based on the [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url].
+ You can also create a color from standardized color names by using [method @GDScript.ColorN] or directly using the color constants defined here. The standardized color set is based on the [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url].
If you want to supply values in a range of 0 to 255, you should use [method @GDScript.Color8].
+ [b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/code] if it's equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). Otherwise, a Color will always evaluate to [code]true[/code].
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/Joint2D.xml b/doc/classes/Joint2D.xml
index fb0e184c26..b055293b9d 100644
--- a/doc/classes/Joint2D.xml
+++ b/doc/classes/Joint2D.xml
@@ -15,7 +15,7 @@
When [member node_a] and [member node_b] move in different directions the [code]bias[/code] controls how fast the joint pulls them back to their original position. The lower the [code]bias[/code] the more the two bodies can pull on the joint.
</member>
<member name="disable_collision" type="bool" setter="set_exclude_nodes_from_collision" getter="get_exclude_nodes_from_collision" default="true">
- If [code]true[/code], [member node_a] and [member node_b] can collide.
+ If [code]true[/code], [member node_a] and [member node_b] can not collide.
</member>
<member name="node_a" type="NodePath" setter="set_node_a" getter="get_node_a" default="NodePath(&quot;&quot;)">
The first body attached to the joint. Must derive from [PhysicsBody2D].
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index 23473290c7..105def21ca 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -205,7 +205,7 @@
<return type="String">
</return>
<description>
- Returns the name of the host OS. Possible values are: [code]"Android"[/code], [code]"Haiku"[/code], [code]"iOS"[/code], [code]"HTML5"[/code], [code]"OSX"[/code], [code]"Server"[/code], [code]"Windows"[/code], [code]"UWP"[/code], [code]"X11"[/code].
+ Returns the name of the host OS. Possible values are: [code]"Android"[/code], [code]"iOS"[/code], [code]"HTML5"[/code], [code]"OSX"[/code], [code]"Server"[/code], [code]"Windows"[/code], [code]"UWP"[/code], [code]"X11"[/code].
</description>
</method>
<method name="get_process_id" qualifiers="const">
diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml
index 64ebc1fa09..7f4a212679 100644
--- a/doc/classes/Vector2.xml
+++ b/doc/classes/Vector2.xml
@@ -5,7 +5,8 @@
</brief_description>
<description>
2-element structure that can be used to represent positions in 2D space or any other pair of numeric values.
- It uses floating point coordinates.
+ It uses floating-point coordinates. See [Vector2i] for its integer counterpart.
+ [b]Note:[/b] In a boolean context, a Vector2 will evaluate to [code]false[/code] if it's equal to [code]Vector2(0, 0)[/code]. Otherwise, a Vector2 will always evaluate to [code]true[/code].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
diff --git a/doc/classes/Vector2i.xml b/doc/classes/Vector2i.xml
index 71c7aaa4e5..2f7ca985b2 100644
--- a/doc/classes/Vector2i.xml
+++ b/doc/classes/Vector2i.xml
@@ -5,7 +5,8 @@
</brief_description>
<description>
2-element structure that can be used to represent positions in 2D space or any other pair of numeric values.
- It uses integer coordinates.
+ It uses integer coordinates and is therefore preferable to [Vector2] when exact precision is required.
+ [b]Note:[/b] In a boolean context, a Vector2i will evaluate to [code]false[/code] if it's equal to [code]Vector2i(0, 0)[/code]. Otherwise, a Vector2i will always evaluate to [code]true[/code].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml
index 29222bb4d1..0c861e5ee2 100644
--- a/doc/classes/Vector3.xml
+++ b/doc/classes/Vector3.xml
@@ -5,7 +5,8 @@
</brief_description>
<description>
3-element structure that can be used to represent positions in 3D space or any other pair of numeric values.
- It uses floating point coordinates.
+ It uses floating-point coordinates. See [Vector3i] for its integer counterpart.
+ [b]Note:[/b] In a boolean context, a Vector3 will evaluate to [code]false[/code] if it's equal to [code]Vector3(0, 0, 0)[/code]. Otherwise, a Vector3 will always evaluate to [code]true[/code].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
diff --git a/doc/classes/Vector3i.xml b/doc/classes/Vector3i.xml
index c5aa3d0347..91d64ea609 100644
--- a/doc/classes/Vector3i.xml
+++ b/doc/classes/Vector3i.xml
@@ -5,7 +5,8 @@
</brief_description>
<description>
3-element structure that can be used to represent positions in 3D space or any other pair of numeric values.
- It uses integer coordinates.
+ It uses integer coordinates and is therefore preferable to [Vector3] when exact precision is required.
+ [b]Note:[/b] In a boolean context, a Vector3i will evaluate to [code]false[/code] if it's equal to [code]Vector3i(0, 0, 0)[/code]. Otherwise, a Vector3i will always evaluate to [code]true[/code].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
diff --git a/doc/classes/bool.xml b/doc/classes/bool.xml
index 4482a280b2..869fc14d40 100644
--- a/doc/classes/bool.xml
+++ b/doc/classes/bool.xml
@@ -4,14 +4,14 @@
Boolean built-in type.
</brief_description>
<description>
- Boolean is a built-in type. It can represent any data type that is either a true or false value. You can think of it as an switch with on or off (1 or 0) setting. It's often used as part of programming logic in condition statements like [code]if[/code] statements.
- [b]Note:[/b] In a code below [code]if can_shoot[/code] is equivalent of [code]if can_shoot == true[/code]. It is good practice to follow the natural spoken language structure when possible. Use [code]if can_shoot[/code] rather than [code]if can_shoot == true[/code] and use [code]if not can_shoot[/code] rather than [code]if can_shoot == false[/code].
+ Boolean is a built-in type. There are two boolean values: [code]true[/code] and [code]false[/code]. You can think of it as an switch with on or off (1 or 0) setting. Booleans are used in programming for logic in condition statements, like [code]if[/code] statements.
+ Booleans can be directly used in [code]if[/code] statements. The code below demonstrates this on the [code]if can_shoot:[/code] line. You don't need to use [code]== true[/code], you only need [code]if can_shoot:[/code]. Similarly, use [code]if not can_shoot:[/code] rather than [code]== false[/code].
[codeblock]
var can_shoot = true
func shoot():
if can_shoot:
- # Perform shooting actions here.
+ pass # Perform shooting actions here.
[/codeblock]
The following code will only create a bullet if both conditions are met: action "shoot" is pressed and if [code]can_shoot[/code] is [code]true[/code].
[b]Note:[/b] [code]Input.is_action_pressed("shoot")[/code] is also a boolean that is [code]true[/code] when "shoot" is pressed and [code]false[/code] when "shoot" isn't pressed.
@@ -46,7 +46,7 @@
<argument index="0" name="from" type="int">
</argument>
<description>
- Cast an [int] value to a boolean value, this method will return [code]true[/code] if called with an integer value different to 0 and [code]false[/code] in other case.
+ Cast an [int] value to a boolean value, this method will return [code]false[/code] if [code]0[/code] is passed in, and [code]true[/code] for all other ints.
</description>
</method>
<method name="bool">
@@ -55,7 +55,7 @@
<argument index="0" name="from" type="float">
</argument>
<description>
- Cast a [float] value to a boolean value, this method will return [code]true[/code] if called with a floating-point value different to 0 and [code]false[/code] in other case.
+ Cast a [float] value to a boolean value, this method will return [code]false[/code] if [code]0.0[/code] is passed in, and [code]true[/code] for all other floats.
</description>
</method>
<method name="bool">
@@ -64,7 +64,8 @@
<argument index="0" name="from" type="String">
</argument>
<description>
- Cast a [String] value to a boolean value, this method will return [code]true[/code] if called with a non-empty string and [code]false[/code] in other case. Examples: [code]bool("False")[/code] returns [code]true[/code], [code]bool("")[/code] returns [code]false[/code].
+ Cast a [String] value to a boolean value, this method will return [code]false[/code] if [code]""[/code] is passed in, and [code]true[/code] for all non-empty strings.
+ Examples: [code]bool("False")[/code] returns [code]true[/code], [code]bool("")[/code] returns [code]false[/code].
</description>
</method>
</methods>
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index 25594bf7c8..951bec2c83 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -100,7 +100,6 @@ void EditorExportPreset::update_files_to_export() {
for (int i = 0; i < to_remove.size(); ++i) {
selected_files.erase(to_remove[i]);
}
- EditorExport::singleton->save_presets();
}
Vector<String> EditorExportPreset::get_files_to_export() const {
diff --git a/editor/icons/ToolButton.svg b/editor/icons/ToolButton.svg
deleted file mode 100644
index 98a41d2a08..0000000000
--- a/editor/icons/ToolButton.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m11 1.1738c-1.1979.4235-1.999 1.5557-2 2.8262.0009552 1.2705.80214 2.4027 2 2.8262v7.1738c0 .554.446 1 1 1s1-.446 1-1v-7.1758c1.1972-.4232 1.9982-1.5544 2-2.8242-.0018-1.2698-.80282-2.401-2-2.8242v2.8242c0 .5523-.44772 1-1 1s-1-.4477-1-1zm-7 1.8262v3.1328l-1.4453-.96484-1.1094 1.6641 3 2c.3359.22389.77347.22389 1.1094 0l3-2-1.1094-1.6641-1.4453.96484v-3.1328zm-.5 8c-.831 0-1.5.669-1.5 1.5v.5h-1v2h8v-2h-1v-.5c0-.831-.669-1.5-1.5-1.5z" fill="#a5efac"/></svg> \ No newline at end of file
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index 896471dab5..d2f94a6d28 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -2106,12 +2106,7 @@ void Node3DEditorViewport::_nav_orbit(Ref<InputEventWithModifiers> p_event, cons
cursor.x_rot += p_relative.y * radians_per_pixel;
}
cursor.y_rot += p_relative.x * radians_per_pixel;
- if (cursor.x_rot > Math_PI / 2.0) {
- cursor.x_rot = Math_PI / 2.0;
- }
- if (cursor.x_rot < -Math_PI / 2.0) {
- cursor.x_rot = -Math_PI / 2.0;
- }
+ cursor.x_rot = CLAMP(cursor.x_rot, -1.57, 1.57);
name = "";
_update_name();
}
@@ -2139,12 +2134,7 @@ void Node3DEditorViewport::_nav_look(Ref<InputEventWithModifiers> p_event, const
cursor.x_rot += p_relative.y * radians_per_pixel;
}
cursor.y_rot += p_relative.x * radians_per_pixel;
- if (cursor.x_rot > Math_PI / 2.0) {
- cursor.x_rot = Math_PI / 2.0;
- }
- if (cursor.x_rot < -Math_PI / 2.0) {
- cursor.x_rot = -Math_PI / 2.0;
- }
+ cursor.x_rot = CLAMP(cursor.x_rot, -1.57, 1.57);
// Look is like the opposite of Orbit: the focus point rotates around the camera
Transform camera_transform = to_camera_transform(cursor);
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index f2c4a533ea..a8029e1e2b 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -1865,7 +1865,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
restart_icon->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
restart_hb->add_child(restart_icon);
restart_label = memnew(Label);
- restart_label->set_text(TTR("The editor must be restarted for changes to take effect."));
+ restart_label->set_text(TTR("Changed settings will be applied to the editor after restarting."));
restart_hb->add_child(restart_label);
restart_hb->add_spacer();
Button *restart_button = memnew(Button);
diff --git a/editor/translations/af.po b/editor/translations/af.po
index 1f598ef5e5..daa0737106 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -784,6 +784,11 @@ msgstr "Metode in teiken Nodus moet gespesifiseer word!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metode in teiken Nodus moet gespesifiseer word!"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index a60de1a41e..ffab95cc8b 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -785,6 +785,11 @@ msgid "Method in target node must be specified."
msgstr "يجب تحديد الدالة ÙÙŠ العقدة Ø§Ù„Ù…Ø³ØªÙ‡Ø¯ÙØ©."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "هذا الاسم ليس Ù…ÙØ¹Ø±Ùاً مميزاً صالحاً:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index f08f2b1362..c9f38d518a 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -746,6 +746,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index 3680e4ce6c..c438934246 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -809,6 +809,11 @@ msgstr "নিরà§à¦¦à§‡à¦¶à¦¿à¦¤ নোডের মেথড নিরà§à¦¦
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "নামটি কারà§à¦¯à¦•র সনাকà§à¦¤à¦•ারী নয়:"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 1640367701..5fb91db7b4 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -765,6 +765,11 @@ msgid "Method in target node must be specified."
msgstr "S'ha d'especificar el mètode al node de destinació."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "El nom no és un identificador vàlid:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index fabec77283..809bc69149 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -24,7 +24,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-06 10:15+0000\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
"Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
@@ -33,7 +33,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -773,6 +773,11 @@ msgid "Method in target node must be specified."
msgstr "Je nutné zadat metodu v cílovém uzlu."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Jméno není platný identifikátor:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -10055,7 +10060,7 @@ msgstr "Přidat akci"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr "TlaÄítko"
+msgstr "Button"
#: editor/project_settings_editor.cpp
msgid "Left Button."
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 8eeaaafaea..70b05c08ff 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -16,12 +16,13 @@
# Kristoffer Andersen <kjaa@google.com>, 2019.
# Joe Osborne <reachjoe.o@gmail.com>, 2020.
# Autowinto <happymansi@hotmail.com>, 2020.
+# Mikkel Mouridsen <mikkelmouridsen@me.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-02-02 08:51+0000\n"
-"Last-Translator: Autowinto <happymansi@hotmail.com>\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"Last-Translator: Mikkel Mouridsen <mikkelmouridsen@me.com>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/godot-engine/"
"godot/da/>\n"
"Language: da\n"
@@ -29,7 +30,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.11-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -443,7 +444,7 @@ msgstr "Det er ikke muligt at tilføje et nyt spor uden en rod"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Ugyldigt spor for Bezier (ingen passende underegenskaber)"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -785,7 +786,7 @@ msgstr "Advarsler"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "Linje- og kolonnenumre."
#: editor/connections_dialog.cpp
#, fuzzy
@@ -794,6 +795,11 @@ msgstr "Metode i target Node skal angives!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Navnet er ikke et gyldigt id:"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -1252,7 +1258,7 @@ msgstr "Udpakker Aktiver"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "De følgende filer kunne ikke trækkes ud af pakken:"
#: editor/editor_asset_installer.cpp
#, fuzzy
diff --git a/editor/translations/de.po b/editor/translations/de.po
index b52206e56e..6fb1a29c12 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -806,6 +806,11 @@ msgid "Method in target node must be specified."
msgstr "Methode des Ziel-Nodes muss angegeben werden."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Name ist kein gültiger Bezeichner:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 4dca7e4c5f..01121a8156 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -730,6 +730,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 127da8ec1f..3f04c4cf01 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -763,6 +763,11 @@ msgid "Method in target node must be specified."
msgstr "ΠÏέπει να οÏιστεί συνάÏτηση στον στοχευμένο κόμβο."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Το όνομα δεν είναι έγκυÏο αναγνωÏιστικό:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index 3addde45ce..f98f043118 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -764,6 +764,11 @@ msgstr "Metodo en celo nodo devas esti specifita."
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metodo en celo nodo devas esti specifita."
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/es.po b/editor/translations/es.po
index f8c4134d07..15efa44f3d 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -53,8 +53,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-15 01:48+0000\n"
-"Last-Translator: paco <pacosoftfree@protonmail.com>\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
"Language: es\n"
@@ -62,7 +62,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -79,7 +79,8 @@ msgstr "Se esperaba un string de longitud 1 (un carácter)."
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
msgstr ""
-"No hay suficientes bytes para decodificar bytes, o el formato es invalido."
+"No hay suficientes bytes para decodificar los bytes, o el formato es "
+"inválido."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -96,11 +97,11 @@ msgstr "Operandos inválidos para el operador %s, %s y %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "Indice inválido de tipo %s para tipo base %s"
+msgstr "Ãndice inválido de tipo %s para el tipo base %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "El índice de nombre «%s» no es válido para el tipo de base %s"
+msgstr "El índice de nombre '%s' no es válido para el tipo de base %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
@@ -806,6 +807,11 @@ msgid "Method in target node must be specified."
msgstr "Se debe establecer un método en el nodo destino."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "El nombre no es un identificador válido:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -2014,7 +2020,7 @@ msgstr "Propiedades del Tema"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr "Enumeraciones"
+msgstr "Enumerados"
#: editor/editor_help.cpp
msgid "Constants"
@@ -3378,7 +3384,7 @@ msgstr "Página: "
#: editor/editor_properties_array_dict.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Item"
-msgstr "Eliminar Item"
+msgstr "Eliminar Ãtem"
#: editor/editor_properties_array_dict.cpp
msgid "New Key:"
@@ -5906,15 +5912,15 @@ msgstr "Degradado Editado"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr "Elemento %d"
+msgstr "Ãtem %d"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr "Elementos"
+msgstr "Ãtems"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr "Editor de Lista de Items"
+msgstr "Editor de Lista de Ãtems"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
@@ -6104,7 +6110,7 @@ msgstr "Depuración del Canal UV"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr "¿Quieres borrar el elemento %d?"
+msgstr "¿Eliminar el ítem %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid ""
@@ -6121,11 +6127,11 @@ msgstr "Librería de Mallas"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Item"
-msgstr "Añadir Item"
+msgstr "Añadir Ãtem"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr "Borrar elemento seleccionado"
+msgstr "Eliminar Ãtem Seleccionado"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Import from Scene"
@@ -7935,7 +7941,7 @@ msgstr "Región de Textura"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
-msgstr "Añadir Todos los Elementos"
+msgstr "Añadir Todos los Ãtems"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All"
@@ -7959,11 +7965,11 @@ msgstr "Menú de edición de tema."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr "Añadir elementos de clase"
+msgstr "Añadir Clases de Ãtems"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr "Eliminar Ãtems de Clases"
+msgstr "Eliminar Clases de Ãtems"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
@@ -11146,7 +11152,7 @@ msgstr "Monitores"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr "Elige uno o más elementos de la lista para mostrar el gráfico."
+msgstr "Elige uno o más ítems de la lista para mostrar el gráfico."
#: editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 46cb219e14..5cab610261 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -770,6 +770,11 @@ msgid "Method in target node must be specified."
msgstr "El método en el nodo objetivo debe ser especificado."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "El nombre no es un identificador válido:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 7be6996d69..5fd61347e1 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -744,6 +744,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index b47056d82b..e461c0f1ec 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -735,6 +735,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 3f94d1112b..428b69062a 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -784,6 +784,11 @@ msgstr "متد در گره مقصد باید مشخص شده باشد!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "نام یک شناسه‌ی معتبر نیست:"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index a95c65be41..125656ed67 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -757,6 +757,11 @@ msgid "Method in target node must be specified."
msgstr "Kohdesolmun metodi täytyy määrittää."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Nimi ei ole kelvollinen tunniste:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index 920b91a30c..ceda61c802 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -743,6 +743,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index fac3b9b84b..46d3adb070 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -834,6 +834,10 @@ msgid "Method in target node must be specified."
msgstr "La méthode du nœud cible doit être spécifiée."
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr "Le nom de la méthode doit être un identifiant valide."
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index b9e6ba69c6..70dd5eada7 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -736,6 +736,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 56126249dc..7895ae48fe 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -777,6 +777,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index 4782afecb0..e3ae2aabe5 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -756,6 +756,11 @@ msgid "Method in target node must be specified."
msgstr "Method को target node में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कीजिà¤."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Method को target node में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कीजिà¤."
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index ad095145b2..5355ee1dc9 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -741,6 +741,11 @@ msgid "Method in target node must be specified."
msgstr "Metoda u ciljnom Ävoru mora biti odreÄ‘ena."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metoda u ciljnom Ävoru mora biti odreÄ‘ena."
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index ef15f85977..b57028a426 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -790,6 +790,11 @@ msgstr "Nevezze meg a metódust a cél Node-ban!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Nevezze meg a metódust a cél Node-ban!"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/id.po b/editor/translations/id.po
index f7a86197b6..92c0c25da9 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -778,6 +778,11 @@ msgid "Method in target node must be specified."
msgstr "Method dalam node target harus ditentukan."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Nama bukan sebuah pengidentifikasi yang sah:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/is.po b/editor/translations/is.po
index 5a1ac9b73c..f0d93d1242 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -770,6 +770,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/it.po b/editor/translations/it.po
index eeec1e05eb..bb53d26fa4 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -50,12 +50,13 @@
# J. Lavoie <j.lavoie@net-c.ca>, 2020.
# Andrea Terenziani <andrea.terenziani.at@gmail.com>, 2020.
# Anonymous <noreply@weblate.org>, 2020.
+# riccardo boffelli <riccardo.boffelli.96@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-07 21:28+0000\n"
-"Last-Translator: Sean Bone <seanbone@zumguy.com>\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"Last-Translator: riccardo boffelli <riccardo.boffelli.96@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
"Language: it\n"
@@ -63,7 +64,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -802,6 +803,11 @@ msgid "Method in target node must be specified."
msgstr "Il metodo del nodo designato deve essere specificato."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Il nome non è un identificatore valido:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -1499,7 +1505,7 @@ msgstr "Riordina gli Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Non è possibile aggiungere l'autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2463,15 +2469,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Impossibile ricaricare una scena che non è mai stata salvata."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Salva Scena"
+msgstr "Ricarica scena salvata"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"La scena attuale ha dei cambiamenti non salvati.\n"
+"Ricaricare comunque la scena salvata? Questa azione non può essere annullata."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -3418,11 +3425,10 @@ msgid "Did you forget the '_run' method?"
msgstr "Hai dimenticato il metodo '_run'?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Mantieni premuto Control per rilasciare un Getter. Mantieni premuto Shift "
-"per rilasciare una firma generica."
+"Tenere premuto il tasto Ctrl per arrotondare ai numeri interi. Tenere "
+"premuto Shift per modifiche più precise."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -4022,8 +4028,10 @@ msgid "Error running post-import script:"
msgstr "Errore di esecuzione dello script di post-import:"
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
msgid "Did you return a Node-derived object in the `post_import()` method?"
msgstr ""
+"Avete restituito un oggetto derivato da un Nodo nel metodo `post_import()`?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -6992,9 +7000,8 @@ msgstr ""
"Manca il metodo '%s' connesso per il segnale '%s' dal nodo '%s' al nodo '%s'."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
-msgstr "(ignora)"
+msgstr "[ignora]"
#: editor/plugins/script_text_editor.cpp
msgid "Line"
@@ -7480,6 +7487,12 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"Fare clic per passare da uno stato di visibilità all'altro.\n"
+"\n"
+"Apri gli occhi: Gizmo è visibile.\n"
+"Occhio chiuso: Gizmo è nascosto.\n"
+"Occhio semiaperto: Gizmo è visibile anche attraverso superfici opache "
+"(\"raggi X\")."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -10579,9 +10592,8 @@ msgid "Instance Child Scene"
msgstr "Istanzia Scena Figlia"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Allega Script"
+msgstr "Rimuovi Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10747,11 +10759,15 @@ msgid "Open Documentation"
msgstr "Apri la documentazione"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid ""
"Cannot attach a script: there are no languages registered.\n"
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"Non è possibile allegare uno script: non ci sono linguaggi registrati.\n"
+"Questo probabilmente perché questo editor è stato costruito con tutti i "
+"moduli di lingua disabilitati."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10802,14 +10818,12 @@ msgstr ""
"root esiste."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
-msgstr "Allega un nuovo script o uno esistente al nodo selezionato."
+msgstr "Allega un nuovo script o uno già esistente al nodo selezionato."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "Svuota uno script per il nodo selezionato."
+msgstr "Rimuovi lo script per il nodo selezionato."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -12072,30 +12086,40 @@ msgid "Invalid package name:"
msgstr "Nome del pacchetto non valido:"
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"Modulo \"GodotPaymentV3\" non valido incluso nell'impostazione del progetto "
+"\" android/moduli\" (modificato in Godot 3.2.2).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
+msgstr "Per utilizzare i plugin \"Use Custom Build\" deve essere abilitato."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"\"Degrees Of Freedom\" è valido solo quando \"Xr Mode\" è \"Oculus Mobile VR"
+"\"."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Hand Tracking\" è valido solo quando \"Xr Mode\" è \"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Focus Awareness\" è valida solo quando \"Xr Mode\" è \"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 7d4aed4b29..fc8444d6bc 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -786,6 +786,11 @@ msgid "Method in target node must be specified."
msgstr "対象ノードã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’指定ã—ã¦ãã ã•ã„。"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "ã“ã®åå‰ã¯ç„¡åйãªè­˜åˆ¥å­ã§ã™:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index 2435a50898..af03b1af9e 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -790,6 +790,11 @@ msgstr "სáƒáƒ›áƒ˜áƒ–ნე კვáƒáƒœáƒ«áƒ¨áƒ˜ მეთáƒáƒ“ი უნდ
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "სáƒáƒ›áƒ˜áƒ–ნე კვáƒáƒœáƒ«áƒ¨áƒ˜ მეთáƒáƒ“ი უნდრიყáƒáƒ¡ გáƒáƒœáƒ¡áƒáƒ–ღვრული!"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index c568dc19b8..a895af27b6 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -768,6 +768,11 @@ msgid "Method in target node must be specified."
msgstr "ëŒ€ìƒ ë…¸ë“œì— ìžˆëŠ” 메서드는 반드시 지정해야 합니다."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "ì´ë¦„ì´ ì˜¬ë°”ë¥¸ ì‹ë³„ìžê°€ 아님:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index bbbe630d4a..fdf9ef15ae 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -773,6 +773,11 @@ msgstr "Metodas pasirinktame Node turi būti nurodytas!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metodas pasirinktame Node turi būti nurodytas!"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index b69ecf7eef..8417a6b650 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -757,6 +757,11 @@ msgid "Method in target node must be specified."
msgstr "Metodi mÄ“rÄ·a mezglÄ nepiecieÅ¡ams specificÄ“t."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metodi mÄ“rÄ·a mezglÄ nepiecieÅ¡ams specificÄ“t."
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index fbf4bce3d6..ab68a71ee2 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -728,6 +728,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index 77ac327f71..db5f5638f3 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -738,6 +738,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index 38e3ee7185..1700bcb138 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -735,6 +735,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 233b5cb428..160fa6e69f 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -758,6 +758,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 5c80321d03..4e7ca2dce1 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-03 20:09+0000\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-"
"engine/godot/nb_NO/>\n"
@@ -28,7 +28,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -796,6 +796,11 @@ msgstr "Metode i mål-Node må spesifiseres!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Navn er ikke en gyldig identifikator:"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -3772,12 +3777,9 @@ msgid "Favorites"
msgstr "Favoritter:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
-"\n"
-"Status: Import av fil feilet. Vennligst reparer filen eller reimporter "
-"manuelt."
+"Status: Import av fil feilet. Reparer filen eller importer igjen manuelt."
#: editor/filesystem_dock.cpp
#, fuzzy
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 8e6c4bcfa4..3d560d3d6d 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -44,7 +44,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
"Last-Translator: Stijn Hinlopen <f.a.hinlopen@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
@@ -53,7 +53,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -790,6 +790,11 @@ msgid "Method in target node must be specified."
msgstr "Methode in doelknoop moet gespecificeerd worden."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Naam is geen geldige identifier:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -1987,15 +1992,15 @@ msgstr "standaard:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "Methodes"
+msgstr "Methoden"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr "Thema Eigenschappen"
+msgstr "Thema-eigenschappen"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr "Enumeraties"
+msgstr "Enumeratie"
#: editor/editor_help.cpp
msgid "Constants"
@@ -2003,7 +2008,7 @@ msgstr "Constanten"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr "Eigenschap Beschrijvingen"
+msgstr "Eigenschapbeschrijvingen"
#: editor/editor_help.cpp
msgid "(value)"
@@ -2019,7 +2024,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr "Methode Beschrijvingen"
+msgstr "Methodebeschrijvingen"
#: editor/editor_help.cpp
msgid ""
diff --git a/editor/translations/or.po b/editor/translations/or.po
index afff834dee..d6678c2819 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -734,6 +734,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 414e66685a..558a86f1cb 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -43,7 +43,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-06 10:15+0000\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
@@ -53,7 +53,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -791,6 +791,11 @@ msgid "Method in target node must be specified."
msgstr "Metoda w węźle docelowym musi zostać podana."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Nazwa nie jest prawidłowym identyfikatorem:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -1484,7 +1489,7 @@ msgstr "Przestaw Autoloady"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Nie można dodać Autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1858,11 +1863,11 @@ msgstr "Przełącz ukryte pliki"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr "Ustaw jako ulubione"
+msgstr "Przełącz ulubione"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Przełącz tryby"
+msgstr "Przełącz tryb"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
@@ -1870,11 +1875,11 @@ msgstr "Przejdź do wprowadzania ścieżki"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr "Przesuń Ulubiony w górę"
+msgstr "Przesuń ulubiony w górę"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr "Przesuń Ulubiony w dół"
+msgstr "Przesuń ulubiony w dół"
#: editor/editor_file_dialog.cpp
msgid "Go to previous folder."
@@ -2122,7 +2127,7 @@ msgstr "Wyczyść"
#: editor/editor_log.cpp
msgid "Clear Output"
-msgstr "Wyczyść dane wyjściowe"
+msgstr "Wyczyść wyjście"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
@@ -2440,15 +2445,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nie można przeładować sceny która nie została zapisana."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Zapisz scenÄ™"
+msgstr "Przywróć zapisaną scenę"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"Aktualna scena ma niezapisane zmiany.\n"
+"Przywrócić zapisaną scenę tak czy inaczej? Ta akcja nie może zostać cofnięta."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2854,8 +2860,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
-"Wszelkie zmiany sceny w edytorze będą odtworzone w uruchomionej grze na "
-"urządzeniu zdalnym. Opcja ta działa szybciej na sieciowych systemach plików."
+"Kiedy ta opcja jest włączona, wszystkie zmiany na scenie w edytorze będą "
+"powtórzone w uruchomionej grze.\n"
+"Kiedy używane zdalnie na urządzeniu, ta opcja jest wydajniejsza w sieciowym "
+"systemie plików."
#: editor/editor_node.cpp
msgid "Sync Script Changes"
@@ -2868,9 +2876,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
-"Wszelkie zmiany skryptów będą synchronizowane z urządzeniem zdalnym "
-"(działające instancje będą zrestartowane). Opcja ta działa szybciej z "
-"użyciem sieciowych systemów plików."
+"Kiedy ta opcja jest włączona, każdy zapisany skrypt będzie przeładowany w "
+"uruchomionej grze.\n"
+"Kiedy używane zdalnie na urządzeniu, ta opcja jest wydajniejsza w sieciowym "
+"systemie plików."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -2894,7 +2903,7 @@ msgstr "Zrzuty ekranu są przechowywane w folderze danych/ustawień edytora."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "Pełny ekran"
+msgstr "Przełącz pełny ekran"
#: editor/editor_node.cpp
msgid "Toggle System Console"
@@ -3378,11 +3387,10 @@ msgid "Did you forget the '_run' method?"
msgstr "Zapomniano metody \"_run\"?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Przytrzymaj Ctrl, by upuścić pobieracz (Getter). Przytrzymaj Shift, by "
-"upuścić generyczną sygnaturę."
+"Przytrzyma Ctrl, by zaokrąglić do liczb całkowitych. Przytrzymaj Shift dla "
+"bardziej precyzyjnych zmian."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3983,7 +3991,7 @@ msgstr "Błąd podczas uruchamiania skryptu po imporcie:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr ""
+msgstr "Czy zwracasz obiekt dziedziczÄ…cy po Node w metodzie `post_import()`?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -5416,7 +5424,7 @@ msgstr "Tryb przesuwania"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr "Tryb Rotacji"
+msgstr "Tryb obrotu"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5556,7 +5564,7 @@ msgstr "Widok"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Always Show Grid"
-msgstr "Zawsze pokaż siatkę"
+msgstr "Zawsze pokazuj siatkÄ™"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
@@ -6938,9 +6946,8 @@ msgstr ""
"\"%s\"."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
-msgstr "(ignoruj)"
+msgstr "[Ignoruj]"
#: editor/plugins/script_text_editor.cpp
msgid "Line"
@@ -6978,7 +6985,7 @@ msgstr "Wielkie litery"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Lowercase"
-msgstr "Małe Litery"
+msgstr "Małe litery"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Capitalize"
@@ -7054,7 +7061,7 @@ msgstr "Wylicz wyrażenie"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr "Przytnij końcowe spacje"
+msgstr "Przytnij końcowe białe znaki"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent to Spaces"
@@ -7387,7 +7394,7 @@ msgstr "\"Wolny widok\" w tył"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
-msgstr "\"Wolny widok\" w góre"
+msgstr "\"Wolny widok\" w górę"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Down"
@@ -7425,6 +7432,12 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"Kliknij, by przełączyć pomiędzy stanami widoczności.\n"
+"\n"
+"Otwarte oko: uchwyt jest widzialny.\n"
+"Zamknięte oko: uchwyt jest ukryty.\n"
+"Półotwarte oko: uchwyt jest również widoczny przez nieprzezroczyste "
+"powierzchnie (\"x-ray\")."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7519,7 +7532,7 @@ msgstr "2 widoki"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr "2 widoki (Alt)"
+msgstr "2 widoki (alternatywnie)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
@@ -7527,7 +7540,7 @@ msgstr "3 widoki"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr "3 widoki (Alt)"
+msgstr "3 widoki (alternatywnie)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
@@ -8807,7 +8820,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment and light shader modes."
-msgstr "Parametr wejściowy \"%s\" dla dla fragmentowego i światłowego shadera."
+msgstr "Parametr wejściowy \"%s\" dla fragmentowego i światłowego shadera."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment shader mode."
@@ -9507,16 +9520,16 @@ msgid ""
"Filters to export non-resource files/folders\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"Filtry do eksportowania plików/folderów nie będących zasobami (oddzielone "
-"przecinkami, np. *.json, *.txt)"
+"Filtry do eksportowania plików/folderów nie będących zasobami\n"
+"(oddzielone przecinkami, np. *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid ""
"Filters to exclude files/folders from project\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"Filtry do wykluczenia plików/folderów z projektu (rozdzielone przecinkami, "
-"np. *.json, *.txt)"
+"Filtry do wykluczenia plików/folderów z projektu\n"
+"(oddzielone przecinkami, np. *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid "Patches"
@@ -10515,9 +10528,8 @@ msgid "Instance Child Scene"
msgstr "Dodaj instancjÄ™ sceny"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Dodaj skrypt"
+msgstr "Odłącz skrypt"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10635,7 +10647,7 @@ msgstr "Nie można działać na węzłach z których dziedziczy obecna scena!"
#: editor/scene_tree_dock.cpp
msgid "Attach Script"
-msgstr "Dodaj skrypt"
+msgstr "Dołącz skrypt"
#: editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
@@ -10687,6 +10699,9 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"Nie można dołączyć skryptu: brak zarejestrowanych języków.\n"
+"To prawdopodobnie przez to, że ten edytor został zbudowany z wyłączonymi "
+"wszystkimi modułami języków."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10737,14 +10752,12 @@ msgstr ""
"główny nie istnieje."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
msgstr "Dołącz nowy lub istniejący skrypt do zaznaczonego węzła."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "Wyczyść skrypt dla zaznaczonego węzła."
+msgstr "Odłącz skrypt z zaznaczonego węzła."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10783,7 +10796,7 @@ msgid ""
"Node has %s connection(s) and %s group(s).\n"
"Click to show signals dock."
msgstr ""
-"Węzeł posiada %s połączeń i %s grup.\n"
+"Węzeł posiada %s połączeń i %s grup.\n"
"Kliknij, aby wyświetlić panel sygnałów."
#: editor/scene_tree_editor.cpp
@@ -11839,15 +11852,15 @@ msgstr "Znajdź typ węzła"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr "Skopiuj Węzeł"
+msgstr "Skopiuj węzły"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr "Wytnij Węzły"
+msgstr "Wytnij węzły"
#: modules/visual_script/visual_script_editor.cpp
msgid "Make Function"
-msgstr "Zmień na funkcję"
+msgstr "Zamień na funkcję"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
@@ -11969,11 +11982,9 @@ msgstr ""
"eksportu."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-"Debugowy keystore nieskonfigurowany w Ustawieniach Edytora ani w profilu "
-"eksportu."
+"Wydaniowy keystore jest niepoprawnie skonfigurowany w profilu eksportu."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -12007,26 +12018,34 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"Niepoprawny moduł \"GodotPaymentV3\" załączony w ustawieniu projektu "
+"\"android/modules\" (zmieniony w Godocie 3.2.2).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
+msgstr "\"Use Custom Build\" musi być włączone, by używać wtyczek."
#: platform/android/export/export.cpp
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"\"Degrees Of Freedom\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus "
+"Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Hand Tracking\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile VR"
+"\"."
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Focus Awareness\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile "
+"VR\"."
#: platform/android/export/export.cpp
msgid ""
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 9d46edcbae..bfa3d0b52c 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -5,12 +5,13 @@
# Calum Knott <calum@calumk.com>, 2017.
# Zion Nimchuk <zionnimchuk@gmail.com>, 2016-2017.
# Allan Nordhøy <epost@anotheragency.no>, 2018.
+# David Fatheree <david.fathereewcchs@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-12-13 14:42+0100\n"
-"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"Last-Translator: David Fatheree <david.fathereewcchs@gmail.com>\n"
"Language-Team: Pirate <https://hosted.weblate.org/projects/godot-engine/"
"godot/pr/>\n"
"Language: pr\n"
@@ -18,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Poedit 2.2\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -29,7 +30,7 @@ msgstr ""
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Expected a strin' o' length 1 (a character)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -39,19 +40,17 @@ msgstr "Nah enough bytes fer decodin' bytes, or ye got th' wrong ship."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr ""
+msgstr "Shiver me timbers! Ye input %i (not passed) in ye expression!"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
msgstr ""
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid operands to operator %s, %s and %s."
msgstr "Yer index property name '%s' in node %s be walkin' th' plank!"
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid index of type %s for base type %s"
msgstr "Yer index property name '%s' in node %s be walkin' th' plank!"
@@ -102,11 +101,11 @@ msgstr ""
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr ""
+msgstr "Smooth Sailin'"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr ""
+msgstr "See'in Double"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
@@ -767,6 +766,11 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Yer name's got no valid identifier:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 199d828897..426888b3a4 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -16,7 +16,7 @@
# jonathan railarem <railarem@gmail.com>, 2017.
# Lucas Silva <lucasb.hpp@gmail.com>, 2018.
# Luiz G. Correia <luizgabriell2.0@gmail.com>, 2017.
-# Mailson Silva Marins <mailsons335@gmail.com>, 2016.
+# Mailson Silva Marins <mailsons335@gmail.com>, 2016, 2020.
# MalcomRF <malcomkbk@gmail.com>, 2017.
# Marcus Correia <marknokalt@live.com>, 2017-2018.
# Michael Alexsander Silva Dias <michaelalexsander@protonmail.com>, 2017-2018.
@@ -73,7 +73,7 @@
# Alan Tavares <alan1tavares@gmail.com>, 2019.
# Rafael Silveira <res883@gmail.com>, 2019.
# Luigi <luigimendeszanchett@gmail.com>, 2019.
-# Nicolas Abril <nicolas.abril@protonmail.ch>, 2019.
+# Nicolas Abril <nicolas.abril@protonmail.ch>, 2019, 2020.
# johnnybigoode <jamarson@gmail.com>, 2019, 2020.
# Zeero <igcdzeero@gmail.com>, 2019.
# Gian Penna <gianfrancopen@gmail.com>, 2020.
@@ -92,13 +92,13 @@
# Anonymous <noreply@weblate.org>, 2020.
# André Sousa <andrelvsousa@gmail.com>, 2020.
# Kleyton Luiz de Sousa Vieira <kleytonluizdesouzavieira@gmail.com>, 2020.
+# Felipe Jesus Macedo <fmacedo746@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2020-06-15 01:48+0000\n"
-"Last-Translator: Kleyton Luiz de Sousa Vieira "
-"<kleytonluizdesouzavieira@gmail.com>\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"Last-Translator: Felipe Jesus Macedo <fmacedo746@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -106,7 +106,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -125,11 +125,11 @@ msgstr "Não há bytes suficientes para decodificar, ou o formato é inválido."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Entrada inválida %i (não passou) na expressão"
+msgstr "Entrada inválida %i (não passada) na expressão"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self não pode ser usado porque a instância é nula (não passou)"
+msgstr "self não pode ser usado porque a instância é nula (não passada)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -145,7 +145,7 @@ msgstr "Nome inválido de índice '%s' para base tipo %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "Argumento inválido para construir '%s'"
+msgstr "Argumentos inválidos para o construto '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -579,7 +579,7 @@ msgstr ""
"Esta animação pertence a uma cena importada, dessa forma, mudanças das "
"trilhas importadas não serão salvas.\n"
"\n"
-"Para ativar a possibilidade de adicionar trilhas customizadas, navegue até "
+"Para ativar a possibilidade de adicionar trilhas customizadas, navegue até "
"as configurações de importação da cena e defina\n"
"\"Animação > Armazenamento\" para \"Arquivos\", ative \"Animação > Mantenha "
"Trilhas Customizadas\", então reimporte.\n"
@@ -843,6 +843,11 @@ msgid "Method in target node must be specified."
msgstr "O método no nó alvo precisa ser especificado."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "O nome não é um identificador valido:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -1919,7 +1924,7 @@ msgstr "Alternar Modo"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "Focar no Caminho"
+msgstr "Habilitar"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
@@ -2622,8 +2627,8 @@ msgid ""
"category."
msgstr ""
"A cena principal não foi definida, selecionar uma?\n"
-"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na "
-"categoria 'Application'."
+"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na categoria "
+"'Application'."
#: editor/editor_node.cpp
msgid ""
@@ -2899,8 +2904,8 @@ msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
-"Malhas e polígonos de navegação serão visíveis no jogo se esta opção estiver "
-"ligada."
+"Malhas e polígonos de navegação serão visíveis no jogo em execução se esta "
+"opção estiver ligada."
#: editor/editor_node.cpp
msgid "Sync Scene Changes"
@@ -3121,13 +3126,13 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
-"Isso vai configurar seu projeto para construções customizadas do Android, "
-"instalando o modelo de fonte para \"res://android/build\".\n"
-"Você pode então aplicar modificações e construir seu próprio APK na guia "
-"Exportação (Adicionando módulos, trocando o AndroidManifest.xml, etc.).\n"
-"Note que para fazer uma construção customizada, em vez de usar APKs pre-"
-"construídos, a opção \"Usar Construção Customizada\" deve estar ativa nas "
-"predefinições de exportação Android."
+"Isso irá configurar o projeto para usar uma build do Android customizada "
+"instalando a template raiz para \"res://android/build\".\n"
+"Você poderá aplicar modificações e construir um APK customizado em exportar "
+"(adicionando módulos, changing the AndroidManifest.xml, etc.).\n"
+"Note que para fazer builds customizadas ao invés de usar APKs pré-"
+"construídas, a opção \"Usar Build Customizada\" deve sestar habilitada na "
+"pré-configuração de exportação Android."
#: editor/editor_node.cpp
msgid ""
@@ -4047,7 +4052,7 @@ msgstr "Erro ao rodar script pós-importação:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr ""
+msgstr "Você retornou um objeto derivado de nó no método `post import ()`?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -5659,7 +5664,7 @@ msgstr "Seleção de Frame"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr "Visualizar Canvas Scale"
+msgstr "Pré-visualização da escala do Canvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
@@ -5667,7 +5672,7 @@ msgstr "Máscara de tradução para inserção de chaves."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation mask for inserting keys."
-msgstr "Mascara de rotação para inserção de chaves."
+msgstr "Máscara de rotação para inserção de chaves."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale mask for inserting keys."
@@ -7005,9 +7010,8 @@ msgid ""
msgstr "Falta método conectado '%s' para sinal '%s' do nó '%s' para nó '%s'."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
-msgstr "(ignore)"
+msgstr "(Ignore)"
#: editor/plugins/script_text_editor.cpp
msgid "Line"
@@ -7438,27 +7442,27 @@ msgstr "Não disponível ao usar o renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
-msgstr "Visão Livre Esquerda"
+msgstr "Visão Livre na Esquerda"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Right"
-msgstr "Visão Livre Direita"
+msgstr "Visão Livre na Direita"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Forward"
-msgstr "Visão Livre Frente"
+msgstr "Visão Livre na Frente"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Backwards"
-msgstr "Visão Livre Trás"
+msgstr "Visão Livre Atrás"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
-msgstr "Visão Livre Cima"
+msgstr "Visão Livre em Cima"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Down"
-msgstr "Visão Livre Baixo"
+msgstr "Visão Livre Embaixo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Speed Modifier"
@@ -7492,6 +7496,12 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"Clique para alternar entre estados de visibilidade.\n"
+"\n"
+"Olhos abertos: Gizmo está visível.\n"
+"Olhos fechados: Gizmo não está visível.\n"
+"Olhos semi-abertos: Gizmo está visível através de superficies opacas (\"raio-"
+"x\")."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7517,7 +7527,7 @@ msgstr "Usar Espaço Local"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr "Usar Snap"
+msgstr "Use Snap"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8379,9 +8389,9 @@ msgid ""
"Shift+LMB: Set wildcard bit.\n"
"Click on another Tile to edit it."
msgstr ""
-"LMB: ligar bit.\n"
-"RMB: desligar bit.\n"
-"Shift+LMB: Escolher bit wildcard.\n"
+"LMB: Ligar bit.\n"
+"RMB: Desligar bit.\n"
+"Shift+LMB: Escolher bit curinga.\n"
"Clique em outro Mosaico para editá-lo."
#: editor/plugins/tile_set_editor_plugin.cpp
@@ -8516,7 +8526,7 @@ msgstr "Nenhuma mensagem de confirmação foi fornecida"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No files added to stage"
-msgstr "Nenhum arquivo adicionado ao palco"
+msgstr "Nenhum arquivo em espera"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit"
@@ -8524,11 +8534,11 @@ msgstr "Confirmação"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "VCS Addon is not initialized"
-msgstr "Extensão VCS não está inicializada"
+msgstr "VCS Addon não inicializado"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control System"
-msgstr "Sistema de Controle de Versionamento"
+msgstr "Sistema de Controle de Versão"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Initialize"
@@ -8536,7 +8546,7 @@ msgstr "Inicializar"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Staging area"
-msgstr "Ãrea Temporária"
+msgstr "Ãrea de espera"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Detect new changes"
@@ -8560,7 +8570,7 @@ msgstr "Excluído"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Typechange"
-msgstr "Alterar tipo"
+msgstr "Alteração de tipo"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Stage Selected"
@@ -8572,11 +8582,11 @@ msgstr "Salvar Tudo"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Add a commit message"
-msgstr "Adicione uma mensagem de confirmação"
+msgstr "Adicione uma mensagem ao commit"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit Changes"
-msgstr "Confirmar Mudanças de Script"
+msgstr "Confirmar Mudanças"
#: editor/plugins/version_control_editor_plugin.cpp
#: modules/gdnative/gdnative_library_singleton_editor.cpp
@@ -8774,7 +8784,7 @@ msgstr "Cor constante."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color uniform."
-msgstr "Cor uniforme."
+msgstr "Uniformidade de cor."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
@@ -8890,7 +8900,7 @@ msgstr "Parâmetro de entrada '%s' para o modo de sombra do vértice."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader mode."
msgstr ""
-"Parâmetro de entrada '%s' para os modos de sombra de vértice e fragmentada."
+"Parâmetro de entrada '%s' para os modo de sombra fragmentada e vértice."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Scalar function."
@@ -9144,7 +9154,7 @@ msgstr "Execute a pesquisa de textura cúbica."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the texture lookup."
-msgstr "Faz uma busca de texturas."
+msgstr "Faz uma busca por texturas."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Cubic texture uniform lookup."
@@ -9160,7 +9170,7 @@ msgstr "Consulta de textura 2D uniforme com triplanar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform function."
-msgstr "Função Transform."
+msgstr "Função Transformação..."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9182,7 +9192,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes transform from four vectors."
-msgstr "Compõe transformação a partir de quatro vetores."
+msgstr "Compõe a transformação de quatro vetores."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Decomposes transform to four vectors."
@@ -9190,19 +9200,19 @@ msgstr "Decompõe transformação em quatro vetores."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the determinant of a transform."
-msgstr "Calcula o determinante de uma transformada."
+msgstr "Calcula o determinante de uma transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the inverse of a transform."
-msgstr "Calcula a inversa de uma transformada."
+msgstr "Calcula a inversa de uma transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the transpose of a transform."
-msgstr "Calcula a transposta de uma transformada."
+msgstr "Calcula a transposta de uma transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies transform by transform."
-msgstr "Multiplica a transformação por transformação."
+msgstr "Multiplica transformação por transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies vector by transform."
@@ -9210,11 +9220,11 @@ msgstr "Multiplica vetor por transformação."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform constant."
-msgstr "Constante de transformação."
+msgstr "Transformar constante."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform uniform."
-msgstr "Uniforme de transformação."
+msgstr "Transformação uniforme."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector function."
@@ -9363,11 +9373,11 @@ msgstr "Subtrai vetor de vetor."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector constant."
-msgstr "Vetor constante."
+msgstr "Constante vetorial."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector uniform."
-msgstr "Vector uniforme."
+msgstr "Uniformidade vetorial."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9381,12 +9391,13 @@ msgstr ""
"declarações de função internas."
#: editor/plugins/visual_shader_editor_plugin.cpp
+#, fuzzy
msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
-"Retorna falloff baseado no produto escalar do normal da superfície e da "
-"direção de visualização da câmera (passe entradas associadas a ela)."
+"Retorna falloff com base no produto dos pontos da superfície normal e na "
+"direção de visualização da câmera (passa as entradas associadas a ela)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9413,7 +9424,7 @@ msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
"differencing."
msgstr ""
-"(Apenas modo Fragmento/Luz) (Vetor) Derivada em 'x' usando diferenciação "
+"(Apenas modo Fragmento/Luz) (Vetor) Derivativo em 'x' usando diferenciação "
"local."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9832,7 +9843,7 @@ msgstr "Projeto ausente"
#: editor/project_manager.cpp
msgid "Error: Project is missing on the filesystem."
-msgstr "Erro: O Projeto está ausente no sistema de arquivos."
+msgstr "Erro: Projeto não encontrado no sistema de arquivos."
#: editor/project_manager.cpp
msgid "Can't open project at '%s'."
@@ -9854,14 +9865,15 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
-"O seguinte arquivo de configurações do projeto não especifica com qual "
-"versão do Godot ele foi criado.\n"
+"O seguinte arquivo de configurações do projeto não especifica a versão do "
+"Godot pelo qual ele foi criado.\n"
"\n"
"%s\n"
"\n"
-"Se escolher abrí-lo, será convertido para o formato atual de arquivo de "
-"configuração do Godot\n"
-"Aviso: Você não poderá mais abrir o projeto com versões anteriores do Godot."
+"Se você o abrir, ele será convertido para o formato de arquivo da "
+"configuração atual do Godot.\n"
+"Atenção: Você não será mais capaz de abrir o projeto com versões anteriores "
+"da engine."
#: editor/project_manager.cpp
msgid ""
@@ -9981,7 +9993,7 @@ msgstr "Novo Projeto"
#: editor/project_manager.cpp
msgid "Remove Missing"
-msgstr "Remover Ausentes"
+msgstr "Remover Ausente"
#: editor/project_manager.cpp
msgid "Templates"
@@ -10144,7 +10156,7 @@ msgstr "Botão Direito."
#: editor/project_settings_editor.cpp
msgid "Middle Button."
-msgstr "Botão do Meio."
+msgstr "Botão do Meio."
#: editor/project_settings_editor.cpp
msgid "Wheel Up."
@@ -10572,16 +10584,15 @@ msgstr "Instanciar Cena(s)"
#: editor/scene_tree_dock.cpp
msgid "Replace with Branch Scene"
-msgstr "Substituir com Ramo como Cena"
+msgstr "Substituir por cena ramo"
#: editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
msgstr "Instânciar Cena Filha"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Adicionar Script"
+msgstr "Remover Script"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10751,6 +10762,9 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"Não pode associar um script: Não existem linguagens registradas.\n"
+"É provável que o editor tenha sido construido com todos os módulos de "
+"linguagem desabilitados."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10801,14 +10815,12 @@ msgstr ""
"existir um nó raiz."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
-msgstr "Adicionar um script novo ou existente para o nó selecionado."
+msgstr "Adicionar um novo script, ou um já existente, para o nó selecionado."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "Remove um script do nó selecionado."
+msgstr "Remove o script do nó selecionado."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10920,7 +10932,7 @@ msgstr "Selecione um Nó"
#: editor/script_create_dialog.cpp
msgid "Path is empty."
-msgstr "O caminho está vazio."
+msgstr "Caminho vazio."
#: editor/script_create_dialog.cpp
msgid "Filename is empty."
@@ -11328,7 +11340,7 @@ msgstr "Singleton GDNative ativado"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Disabled GDNative Singleton"
-msgstr "Singleton GDNative Desabilitado"
+msgstr "GDNative Singleton desativado"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
@@ -11589,8 +11601,8 @@ msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
msgstr ""
-"Nó entrou em yield, mas não retornou um estado de função na primeira memória "
-"de trabalho."
+"O nó cedeu, mas não retornou um estado de função na primeira memória de "
+"trabalho."
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -12041,20 +12053,20 @@ msgstr ""
#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-"Porta-chaves de depuração não configurado nas Configurações do Editor e nem "
-"na predefinição."
+"Keystore de liberação icorretamente configurada na predefinição de "
+"exportação."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
-"A compilação personalizada requer um caminho SDK do Android válido nas "
+"Build personalizada precisa de um caminho Android SDK válido em "
"Configurações do Editor."
#: platform/android/export/export.cpp
msgid "Invalid Android SDK path for custom build in Editor Settings."
msgstr ""
-"Caminho SDK do Android inválido para a compilação personalizada nas "
-"Configurações do Editor."
+"Caminho do Android SDK inválido para o build personalizado em Configurações "
+"do Editor."
#: platform/android/export/export.cpp
msgid ""
@@ -12066,7 +12078,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
-msgstr "Chave pública inválida para expansão de APK."
+msgstr "Chave pública inválida para expansão do APK."
#: platform/android/export/export.cpp
msgid "Invalid package name:"
@@ -12077,34 +12089,45 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"Módulo inválido \"GodotPaymentV3\" incluido na configuração de projeto "
+"\"android/modules\" (changed in Godot 3.2.2).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
+"\"Use Custom Build\" precisa estar ativo para ser possível utilizar plugins."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"\"Degrees Of Freedom\" só é válido quando o \"Oculus Mobile VR\" está no "
+"\"Mode Xr\"."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Hand Tracking\" só é válido quando o\"Oculus Mobile VR\" está no \"Xr Mode"
+"\"."
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Focus Awareness\" só é válido quando o \"Oculus Mobile VR\" está no \"Xr "
+"Mode\"."
#: platform/android/export/export.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-"Tentando compilar a partir de um modelo compilado personalizado, mas nenhuma "
-"informação de versão para ele existe. Por favor, reinstale pelo menu "
+"Tentando construir a partir de um modelo compilado personalizado, mas "
+"nenhuma informação de versão para ele existe. Por favor, reinstale pelo menu "
"'Projeto'."
#: platform/android/export/export.cpp
@@ -12114,7 +12137,7 @@ msgid ""
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-"Diferença de versão da compilação do Android:\n"
+"Diferença na versão da build do Android:\n"
" Modelo instalado: %s\n"
" Versão do Godot: %s\n"
"Por favor reinstale o modelo de compilação do Android pelo menu 'Projeto'."
@@ -12128,13 +12151,13 @@ msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-"A compilação do projeto Android falhou, verifique a saída pelo erro.\n"
+"A construção do projeto Android falhou, verifique a saída para detalhes.\n"
"Alternativamente, visite docs.godotengine.org para ver a documentação de "
"compilação do Android."
#: platform/android/export/export.cpp
msgid "No build apk generated at: "
-msgstr "Nenhuma compilação apk gerada em: "
+msgstr "Nenhuma construção apk gerada em: "
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
@@ -12545,7 +12568,8 @@ msgstr ""
#: scene/3d/collision_shape.cpp
msgid ""
"ConcavePolygonShape doesn't support RigidBody in another mode than static."
-msgstr "Lol."
+msgstr ""
+"ConcavePolygonShape não suporta um RigidBody em outro modo além do estático."
#: scene/3d/cpu_particles.cpp
msgid "Nothing is visible because no mesh has been assigned."
@@ -12718,7 +12742,7 @@ msgstr "Nada está ligado à entrada '%s' do nó '%s'."
#: scene/animation/animation_tree.cpp
msgid "No root AnimationNode for the graph is set."
-msgstr "Um AnimationNode raiz para o gráfico não está definido."
+msgstr "Nenhuma raiz AnimationNode para o gráfico está definida."
#: scene/animation/animation_tree.cpp
msgid "Path to an AnimationPlayer node containing animations is not set."
@@ -12784,9 +12808,9 @@ msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
-"A Dica não será exibida quando o controle de Filtro do Mouse estiver "
-"definido como \"Ignorar\". Para resolver, defina o Filtro do Mouse como "
-"\"Parar\" ou \"Continuar\"."
+"A sugestão de dica não será exibida quando o Filtro do Mouse do controle "
+"estiver definido como \"Ignorar\". Para resolver isto, defina o Filtro do "
+"Mouse como \"Parar\" ou \"Passar\"."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -12831,7 +12855,7 @@ msgid ""
"Environment -> Default Environment) could not be loaded."
msgstr ""
"O Ambiente Padrão especificado nas Configurações de Projeto (Rendering -> "
-"Environment -> Default Environment) não pôde ser carregado."
+"Environment -> Default Environment) não pôde ser carregado."
#: scene/main/viewport.cpp
msgid ""
diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po
index 40a83eaa87..54accb0d6f 100644
--- a/editor/translations/pt_PT.po
+++ b/editor/translations/pt_PT.po
@@ -768,6 +768,11 @@ msgid "Method in target node must be specified."
msgstr "Método no nó alvo deve ser especificado."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "O nome não é um identificador válido:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index 5e362de330..cbf6a8f0a0 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -749,6 +749,11 @@ msgid "Method in target node must be specified."
msgstr "Metoda din nodul țintă trebuie specificată."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metoda din nodul țintă trebuie specificată."
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 8bae9207d0..a2e562446d 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -27,7 +27,7 @@
# Yan <uvokinuvokines@gmail.com>, 2018.
# V. <Unit68189@gmail.com>, 2018, 2019.
# Victor Butorin <mrwebsterchannel@gmail.com>, 2018.
-# ÐлекÑандр <ol-vin@mail.ru>, 2018, 2019.
+# ÐлекÑандр <ol-vin@mail.ru>, 2018, 2019, 2020.
# Ðнатолий Горбунов <afgorbunov@gmail.com>, 2018, 2019.
# Vadim Vergasov <vadim.vergasov2003@gmail.com>, 2018, 2019.
# ÐÑлан Снупов <aslan170505@gmail.com>, 2018.
@@ -76,12 +76,14 @@
# Nikita <Kulacnikita@ya.ru>, 2020.
# Alexander <ramzi7208@gmail.com>, 2020.
# Alex Tern <ternvein@gmail.com>, 2020.
+# Varion Drakon Neonovich <variondrakon@gmail.com>, 2020.
+# d2cyb <dmitrydpb@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-15 12:01+0000\n"
-"Last-Translator: Alex Tern <ternvein@gmail.com>\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"Last-Translator: ÐлекÑандр <ol-vin@mail.ru>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
"Language: ru\n"
@@ -90,7 +92,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -99,13 +101,13 @@ msgstr "Ðеверный тип аргумента Ð´Ð»Ñ convert(), иÑполÑ
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "ОжидалаÑÑŒ Ñтрока длиной 1 (Ñимвол)."
+msgstr "ОжидалаÑÑŒ Ñтрока длиной 1 (Ñ‚.е. Ñимвол)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "ÐедоÑтаточно байтов Ð´Ð»Ñ Ð´ÐµÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ неверный формат."
+msgstr "ÐедоÑтаточно байтов Ð´Ð»Ñ Ð´ÐµÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð¹Ñ‚Ð¾Ð² или неверный формат."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -134,7 +136,7 @@ msgstr "ÐедопуÑтимые аргументы Ð´Ð»Ñ Ð¿Ð¾ÑтроениÑ
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr "Ðа вызове '%s':"
+msgstr "При вызове '%s':"
#: core/ustring.cpp
msgid "B"
@@ -190,11 +192,11 @@ msgstr "Ð’Ñтавить ключ здеÑÑŒ"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "Дублировать выделенные ключ(и)"
+msgstr "Дублировать выделенные ключи"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "Удалить выделенные ключ(и)"
+msgstr "Удалить выделенные ключи"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
@@ -242,7 +244,7 @@ msgstr "Многократное изменение перехода"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transform"
-msgstr "Ðнимационное многократное изменение положениÑ"
+msgstr "Ðнимационное многоÑменное преобразование"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Value"
@@ -250,7 +252,7 @@ msgstr "Изменить значение ключевого кадра"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr "Ðнимационный многократный вызов изменениÑ"
+msgstr "Изменить вызов анимации"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
@@ -320,7 +322,7 @@ msgstr "Изменить Путь СледованиÑ"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr "Переключить Ñтот трек вкл/выкл."
+msgstr "Включить/выключить Ñтот трек."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
@@ -328,16 +330,15 @@ msgstr "Режим ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (Как Ñто ÑвойÑтво уÑта
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr "Режим Перехода"
+msgstr "Режим интерполÑции"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
-"Режим Обработки Ð—Ð°Ñ†Ð¸ÐºÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ (Переход заканчиваетÑÑ Ñ Ð½Ð°Ñ‡Ð°Ð»Ð¾Ð¼ нового цикла)"
+msgstr "Режим Ð·Ð°Ñ†Ð¸ÐºÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ (интерполировать начало и конец при зацикливании)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
-msgstr "Удалить Ñтот трек."
+msgstr "Удалить Ñту дорожку."
#: editor/animation_track_editor.cpp
msgid "Time (s): "
@@ -403,7 +404,7 @@ msgstr "Изменить режим Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸"
#: editor/animation_track_editor.cpp
msgid "Change Animation Interpolation Mode"
-msgstr "Изменить режим интерполÑции анимации"
+msgstr "Изменить ÑпоÑоб интерполÑции анимации"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
@@ -463,7 +464,8 @@ msgstr "ПереÑтавить дорожки"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr "Трек транÑформации применÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к оÑнованным на Spatial узлам."
+msgstr ""
+"Дорожка Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к оÑнованным на Spatial узлам."
#: editor/animation_track_editor.cpp
msgid ""
@@ -472,14 +474,14 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
-"Aудио треки могут указывать только на узлы типа:\n"
+"Ðудио дорожки могут указывать только на узлы типа:\n"
"-AudioStreamPlayer\n"
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr "Треки Ðнимации могут указывать только на узлы типа AnimationPlayer."
+msgstr "Дорожки анимации могут указывать только на узлы типа AnimationPlayer."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
@@ -487,11 +489,11 @@ msgstr "Проигрыватель анимации не может анимир
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ новый трек без корневого узла"
+msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ новую дорожку без корневого узла"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr "Ðеверный трек Ð´Ð»Ñ ÐºÑ€Ð¸Ð²Ð¾Ð¹ Безье (нет подходÑщих подÑвойÑтв)"
+msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ° Ð´Ð»Ñ ÐºÑ€Ð¸Ð²Ð¾Ð¹ Безье (нет подходÑщих подÑвойÑтв)"
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
@@ -499,11 +501,11 @@ msgstr "Добавить дорожку Безье"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr "Путь трека некорректен, потому Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ."
+msgstr "Путь к дорожке некорректен, потому Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr "Трек не имеет тип Spatial, Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ"
+msgstr "Дорожка не имеет тип Spatial, Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ"
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
@@ -515,11 +517,11 @@ msgstr "Добавить ключ дорожки"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr "Путь трека некорректен, потому Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ метода."
+msgstr "Путь к дорожке некорректен, потому Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ключ метода."
#: editor/animation_track_editor.cpp
msgid "Add Method Track Key"
-msgstr "Добавить ключ отÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð°"
+msgstr "Добавить ключ дорожки Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð°"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
@@ -546,7 +548,7 @@ msgid ""
"This option does not work for Bezier editing, as it's only a single track."
msgstr ""
"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ðµ работает Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÑ€Ð¸Ð²Ñ‹Ð¼Ð¸ Безье, так как Ñто только "
-"один трек."
+"одна дорожка."
#: editor/animation_track_editor.cpp
msgid ""
@@ -561,14 +563,14 @@ msgid ""
"files."
msgstr ""
"Ð”Ð°Ð½Ð½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ‚ импортированной Ñцене, поÑтому изменениÑ, "
-"внеÑенные в импортированные треки, не будут Ñохранены.\n"
+"внеÑенные в импортированные дорожки, не будут Ñохранены.\n"
"\n"
-"Чтобы активировать возможноÑть Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑких треков, перейдите "
-"к наÑтройкам импорта Ñцены и уÑтановите\n"
+"Чтобы активировать возможноÑть Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑких дорожек, "
+"перейдите к наÑтройкам импорта Ñцены и уÑтановите\n"
"\"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ > Хранилище\" в значение \"Файлы\", а также включите пункт "
-"\"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ > СохранÑть пользовательÑкие треки\", и заново импортируйте "
+"\"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ > СохранÑть пользовательÑкие дорожки\", и заново импортируйте "
"Ñцену.\n"
-"Ð’ качеÑтве альтернативы иÑпользуйте преÑет импорта, который импортирует "
+"Ð’ качеÑтве альтернативы иÑпользуйте шаблон импорта, который импортирует "
"анимации в отдельные файлы."
#: editor/animation_track_editor.cpp
@@ -581,11 +583,11 @@ msgstr "Выберите узел AnimationPlayer Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ Ñ€Ð
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
-msgstr "Показывать треки только выделенных в дереве узлов."
+msgstr "Показывать дорожки только выделенных в дереве узлов."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
-msgstr "Группировать треки по узлам или показывать их как проÑтой ÑпиÑок."
+msgstr "Группировать дорожки по узлам или показывать их как проÑтой ÑпиÑок."
#: editor/animation_track_editor.cpp
msgid "Snap:"
@@ -619,7 +621,7 @@ msgstr "СвойÑтва анимации."
#: editor/animation_track_editor.cpp
msgid "Copy Tracks"
-msgstr "Копировать треки"
+msgstr "Копировать дорожки"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
@@ -635,7 +637,7 @@ msgstr "Дублировать выделенное"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr "Дублировать и перемеÑтить"
+msgstr "Дублировать и транÑпонировать"
#: editor/animation_track_editor.cpp
msgid "Delete Selection"
@@ -825,7 +827,12 @@ msgstr "Ðомера Ñтрок и Ñтолбцов."
#: editor/connections_dialog.cpp
msgid "Method in target node must be specified."
-msgstr "Метод должен быть указан в целевом узле."
+msgstr "Метод в целевом узле должен быть указан."
+
+#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Ð˜Ð¼Ñ Ð½Ðµ ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым идентификатором:"
#: editor/connections_dialog.cpp
msgid ""
@@ -837,7 +844,7 @@ msgstr ""
#: editor/connections_dialog.cpp
msgid "Connect to Node:"
-msgstr "ПриÑоединить к узлу:"
+msgstr "ПриÑоединить к Узлу:"
#: editor/connections_dialog.cpp
msgid "Connect to Script:"
@@ -849,7 +856,7 @@ msgstr "От Ñигнала:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
-msgstr "Узел не Ñодержит Ñкрипт."
+msgstr "Сцена не Ñодержит каких-либо Ñкриптов."
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -870,7 +877,7 @@ msgstr "Удалить"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr "Добавить дополнительный параметр вызова:"
+msgstr "Добавить дополнительный аргумент вызова:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
@@ -956,7 +963,7 @@ msgstr "Подключить Ñигнал к методу"
#: editor/connections_dialog.cpp
msgid "Edit Connection:"
-msgstr "Редактировать подключение:"
+msgstr "Редактировать Ñоединение:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
@@ -1093,7 +1100,7 @@ msgstr "Владельцы:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (Can't be restored)"
-msgstr "Удалить выбранные файлы из проекта? (ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ!)"
+msgstr "Удалить выбранные файлы из проекта? (ÐÐµÐ»ÑŒÐ·Ñ Ð²Ð¾ÑÑтановить)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1522,7 +1529,7 @@ msgstr "ПереÑтановка автозагрузок"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð²Ð°Ð¸Ñ‚ÑŒ автозагрузку:"
+msgstr "Ðе удаётÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ автозагрузку:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -2482,7 +2489,7 @@ msgstr "Ðе возможно загрузить Ñцену, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ
#: editor/editor_node.cpp
msgid "Reload Saved Scene"
-msgstr "Перезагрузить Ñохранённую Ñцену"
+msgstr "Перезагрузить Ñохраненную Ñцену"
#: editor/editor_node.cpp
msgid ""
@@ -2768,12 +2775,12 @@ msgstr "Ðабор тайлов..."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr "Отменить"
+msgstr "Отменить (Undo)"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr "Повторить"
+msgstr "Повторить (Redo)"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
@@ -2930,7 +2937,7 @@ msgstr "Макет редактора"
#: editor/editor_node.cpp
msgid "Take Screenshot"
-msgstr "Сделать Ñнимок Ñкрана"
+msgstr "Сделать Ñкриншот"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
@@ -3000,7 +3007,7 @@ msgstr "СообщеÑтво"
#: editor/editor_node.cpp
msgid "About"
-msgstr "О движке"
+msgstr "О Godot Engine"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -3181,7 +3188,7 @@ msgstr "Открыть предыдущий редактор"
#: editor/editor_node.h
msgid "Warning!"
-msgstr "Внимание!"
+msgstr "Предупреждение!"
#: editor/editor_path.cpp
msgid "No sub-resources found."
@@ -3290,7 +3297,7 @@ msgstr "[ПуÑто]"
#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp
msgid "Assign..."
-msgstr "ÐазначаетÑÑ..."
+msgstr "УÑтанавливать.."
#: editor/editor_properties.cpp
msgid "Invalid RID"
@@ -4025,7 +4032,7 @@ msgstr "Ошибка запуÑка поÑÑ‚-импорт Ñкрипта:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr ""
+msgstr "Вы вернули производный от Node объект в методе `post_import ()`?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -4243,7 +4250,7 @@ msgstr "Загрузка..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Move Node Point"
-msgstr "Передвинуть узел"
+msgstr "Передвинуть точку узла"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Change BlendSpace1D Limits"
@@ -4698,7 +4705,7 @@ msgstr "ПеремеÑтить узел"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Transition exists!"
-msgstr "Переход уже ÑущеÑтвует!"
+msgstr "Переход ÑущеÑтвует!"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Add Transition"
@@ -5632,7 +5639,7 @@ msgstr "МаÑштаб при проÑмотре холÑта"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
-msgstr "МаÑка Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»Ñемых ключей."
+msgstr "МаÑка транÑформации Ð´Ð»Ñ Ð²Ñтавки ключей."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation mask for inserting keys."
@@ -5665,7 +5672,7 @@ msgstr "ÐвтовÑтавка ключа"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation Key and Pose Options"
-msgstr "ÐаÑтройки ключевых кадров и поз"
+msgstr "Опции анимационных ключей и поз"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -5777,7 +5784,7 @@ msgstr "МаÑка излучениÑ"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Solid Pixels"
-msgstr "Сплошные пикÑели"
+msgstr "Залитые пикÑели"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5923,16 +5930,15 @@ msgstr "Это не работает на корне Ñцены!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Shape"
-msgstr "Создать треугольную Ñетку ÑтатичеÑкой формы"
+msgstr "Создать Ñетку ÑтатичеÑкой формы"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create a single convex collision shape for the scene root."
-msgstr ""
-"Ðе удаетÑÑ Ñоздать единÑтвенную выпуклую форму ÑÑ‚Ð¾Ð»ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ñ€Ð½Ñ Ñцены."
+msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ñоздать единую выпуклую форму ÑÑ‚Ð¾Ð»ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ñ€Ð½Ñ Ñцены."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a single convex collision shape."
-msgstr "Ðе удалоÑÑŒ Ñоздать одну выпуклую форму Ñтолкновений."
+msgstr "Ðе удалоÑÑŒ Ñоздать ни одной выпуклой формы ÑтолкновениÑ."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -5945,11 +5951,11 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create any collision shapes."
-msgstr "Ðе удалоÑÑŒ Ñоздать ни одной форму ÑтолкновениÑ."
+msgstr "Ðе удалоÑÑŒ Ñоздать ни одну форму ÑтолкновениÑ."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Shapes"
-msgstr "Создать неÑколько выпуклых форм"
+msgstr "Создать неÑкольких выпуклых фигур"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
@@ -6035,7 +6041,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
-msgstr "Создать неÑколько ÑоÑедних выпуклых форм ÑтолкновениÑ"
+msgstr "Создать выпуклую облаÑть ÑтолкновениÑ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6056,10 +6062,10 @@ msgid ""
"This can be used instead of the SpatialMaterial Grow property when using "
"that property isn't possible."
msgstr ""
-"Создаёт Ñтатичную обводочную полиÑетку. Её нормали переворачиваютÑÑ "
-"автоматичеÑки.\n"
-"Она может быть иÑпользована в Ñлучае, еÑли иÑпользовать ÑвойÑтво Grow "
-"материала SpatialMaterial не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼."
+"Создать Ñтатичную контурную полиÑетку. ÐšÐ¾Ð½Ñ‚ÑƒÑ€Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñетка будет иметь Ñвои "
+"нормали, перевернутые автоматичеÑки.\n"
+"Можно иÑпользовать вмеÑто ÑвойÑтва Grow в SpatialMaterial, в Ñлучае когда "
+"оно не применимо."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "View UV1"
@@ -6974,7 +6980,6 @@ msgstr ""
"'%s'."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
msgstr "(игнорировать)"
@@ -7335,7 +7340,7 @@ msgstr "ВыравнÑть преобразование Ñ Ð¾Ð±Ð»Ð°Ñтью пр
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Rotation with View"
-msgstr "ВыравнÑть поворот Ñ Ð¾Ð±Ð»Ð°Ñтью проÑмотра"
+msgstr "СовмеÑтить поворот Ñ Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ взглÑда"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
@@ -7462,6 +7467,12 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"Ðажмите Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ÑоÑтоÑниÑми видимоÑти.\n"
+"\n"
+"Открытый глаз: Гизмо видно.\n"
+"Закрытый глаз: Гизмо Ñкрыто.\n"
+"Полуоткрытый глаз: Гизмо также видно Ñквозь непрозрачные поверхноÑти "
+"(«рентген»)."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7694,7 +7705,7 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't replace by mesh."
-msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть заменена Ñеткой."
+msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть заменена полиÑеткой."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Mesh2D"
@@ -8597,7 +8608,7 @@ msgstr "Добавить входной порт"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add output port"
-msgstr "Добавить выходной порт"
+msgstr "Добавить иÑходÑщий порт"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Change input port type"
@@ -8678,7 +8689,7 @@ msgstr "Показать полученный код шейдера."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Create Shader Node"
-msgstr "Создать узел шейдера"
+msgstr "Создать Шейдерный узел"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color function."
@@ -8722,7 +8733,7 @@ msgstr "Оператор выцветаниÑ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "HardLight operator."
-msgstr "Оператор HardLight."
+msgstr "Оператор жёÑткого Ñвета."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Lighten operator."
@@ -9239,7 +9250,7 @@ msgstr "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ð¾Ð»ÑÑ†Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÐºÑ‚
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Linear interpolation between two vectors using scalar."
-msgstr "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ð¾Ð»ÑÑ†Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð°Ð¼Ð¸ Ñ Ð¸Ñпользованием ÑкалÑра."
+msgstr "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ð¾Ð»ÑÑ†Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð°Ð¼Ð¸ иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÑкалÑÑ€."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the normalize product of vector."
@@ -10166,7 +10177,7 @@ msgstr "ÐаÑтройки Ñохранены нормально."
#: editor/project_settings_editor.cpp
msgid "Moved Input Action Event"
-msgstr "Событие ввода дейÑÑ‚Ð²Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¾"
+msgstr "ПеренеÑите Ñобытие ввода дейÑтвиÑ"
#: editor/project_settings_editor.cpp
msgid "Override for Feature"
@@ -10551,7 +10562,6 @@ msgid "Instance Child Scene"
msgstr "Добавить дочернюю Ñцену"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
msgstr "Прикрепить Ñкрипт"
@@ -10724,6 +10734,9 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"Ðевозможно прикрепить Ñкрипт: нет зарегиÑтрированных Ñзыков.\n"
+"ВероÑтно, Ñто ÑвÑзано Ñ Ñ‚ÐµÐ¼, что Ñтот редактор был поÑтроен Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ð¼Ð¸ "
+"вÑеми Ñзыковыми модулÑми."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10774,12 +10787,10 @@ msgstr ""
"не ÑущеÑтвует."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
msgstr "Прикрепить новый или ÑущеÑтвующий Ñкрипт к выбранному узлу."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
msgstr "Убрать Ñкрипт у выбранного узла."
@@ -11387,7 +11398,7 @@ msgstr "Залить выделенную GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paste Selection"
-msgstr "Ð’Ñтавить выделенную Ñетку"
+msgstr "Ð’Ñтавка выделенной Ñетки"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
@@ -12008,7 +12019,6 @@ msgstr ""
"предуÑтановках."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"ÐžÑ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð° не наÑтроена ни в наÑтройках редактора, ни в "
@@ -12046,26 +12056,34 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"ÐедопуÑтимый модуль «GodotPaymentV3», включенный в наÑтройку проекта "
+"«android/modules» (изменен в Godot 3.2.2).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
+msgstr "«Use Custom Build» должен быть включен Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²."
#: platform/android/export/export.cpp
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"«Степени Ñвободы» дейÑтвительны только тогда, когда «Xr Mode» - Ñто «Oculus "
+"Mobile VR»."
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"«ОтÑлеживание рук» дейÑтвует только тогда, когда «Xr Mode» - Ñто «Oculus "
+"Mobile VR»."
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"«ОÑведомленноÑть о фокуÑе» дейÑтвительна только в том Ñлучае, еÑли «Режим "
+"Xr» - Ñто «Oculus Mobile VR»."
#: platform/android/export/export.cpp
msgid ""
@@ -12298,7 +12316,7 @@ msgstr ""
#: scene/2d/light_occluder_2d.cpp
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
-"ЗаÑлонÑющий полигон Ð´Ð»Ñ Ñтого окклюдера пуÑÑ‚. ПожалуйÑта, нариÑуйте полигон."
+"ЗаÑлонÑющий полигон Ð´Ð»Ñ Ñтого окклюдера пуÑÑ‚. ПожалуйÑта, добавьте полигон."
#: scene/2d/navigation_polygon.cpp
msgid ""
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 4d252a53d6..141696c00a 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -756,6 +756,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index a341552d1c..0920487af3 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -756,6 +756,11 @@ msgid "Method in target node must be specified."
msgstr "Metóda v target node-e musí byť špecifikovaná."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metóda v target node-e musí byť špecifikovaná."
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index faec304f67..114dce1e63 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -799,6 +799,11 @@ msgstr "Metoda v ciljnem gradniku mora biti navedena!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Ime ni pravilen identifikator:"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index 5bcf15eb82..32d08c7bc9 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -744,6 +744,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index 4e7064f00c..01d8c4ca91 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -841,6 +841,11 @@ msgstr "Метода у циљаном чвору мора бити наведе
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Име није важећи идентификатор:"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index e62d152c45..fe13877f42 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -765,6 +765,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index e316c74160..ddd0188d5d 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -772,6 +772,11 @@ msgstr "Metod i Mål-Node måste specificeras!"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Metod i Mål-Node måste specificeras!"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index b8ea8d3538..8f161acfc9 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -757,6 +757,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/te.po b/editor/translations/te.po
index 589064278d..87fb947dd0 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -736,6 +736,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/th.po b/editor/translations/th.po
index db7fd6adea..3af6fde5a0 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -744,6 +744,11 @@ msgid "Method in target node must be specified."
msgstr "ต้องระบุเมธอดในโหนดเป้าหมาย"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "ไม่สามารถใช้ชื่อนี้ได้:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 277cc2c807..27886e1d4d 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -798,6 +798,11 @@ msgid "Method in target node must be specified."
msgstr "Hedef düğümdeki metod tanımlanmalı."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Ad doÄŸru bir belirleyici deÄŸil:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index 75cce04e0e..66d7caab34 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -773,6 +773,11 @@ msgid "Method in target node must be specified."
msgstr "Має бути вказано метод у цільовому вузлі."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Ðазва не Ñ” коректним ідентифікатором:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 10558ad98e..6985cbdc39 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -746,6 +746,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index fe846d5e08..ff214a7091 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -763,6 +763,11 @@ msgid "Method in target node must be specified."
msgstr "Phương thức trong nút đích phải được chỉ định."
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "Phương thức trong nút đích phải được chỉ định."
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 5dc2b5948f..4acf70b8ae 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -64,12 +64,14 @@
# binotaliu <binota@protonmail.ch>, 2020.
# BinotaLIU <binota@protonmail.ch>, 2020.
# Tim Bao <honiebao@gmail.com>, 2020.
+# UnluckyNinja <unluckyninja1994@gmail.com>, 2020.
+# æ— åŒæµ <1257678024@qq.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2020-06-15 01:48+0000\n"
-"Last-Translator: Tim Bao <honiebao@gmail.com>\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"Last-Translator: æ— åŒæµ <1257678024@qq.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
"Language: zh_CN\n"
@@ -77,7 +79,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -806,6 +808,11 @@ msgid "Method in target node must be specified."
msgstr "必须指定目标节点的方法。"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "åç§°ä¸æ˜¯æœ‰æ•ˆçš„æ ‡è¯†ç¬¦ï¼š"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -2438,6 +2445,8 @@ msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"当å‰åœºæ™¯æœ‰æœªä¿å­˜çš„æ›´æ”¹ã€‚\n"
+"是å¦é‡æ–°åŠ è½½ä¿å­˜çš„场景? æ­¤æ“作无法撤消。"
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2655,7 +2664,7 @@ msgstr "下一个标签页"
#: editor/editor_node.cpp
msgid "Previous tab"
-msgstr "上一个标签页"
+msgstr "上一个标签"
#: editor/editor_node.cpp
msgid "Filter Files..."
@@ -2855,7 +2864,7 @@ msgstr "编辑器布局"
#: editor/editor_node.cpp
msgid "Take Screenshot"
-msgstr "截å–å±å¹•"
+msgstr "截å±"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
@@ -3339,9 +3348,8 @@ msgid "Did you forget the '_run' method?"
msgstr "您是å¦é—æ¼äº†_run()方法?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
-msgstr "按ä½Ctrl键放置一个Getter节点。按ä½Shift键放置一个通用签å。"
+msgstr "按ä½Ctrlé”®æ¥å››èˆäº”入至整数。 按ä½Shifté”®èŽ·å–æ›´ç²¾ç¡®çš„å˜åŒ–。"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3932,7 +3940,7 @@ msgstr "åŽå¤„ç†è„šæœ¬è¿è¡Œå‘生错误:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr ""
+msgstr "你是å¦åœ¨ `post_import()` 方法中返回了 Node è¡ç”Ÿå¯¹è±¡ï¼Ÿ"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -6844,9 +6852,8 @@ msgid ""
msgstr "未找到方法“%sâ€ï¼ˆè¿žæŽ¥äºŽä¿¡å·â€œ%sâ€ã€æ¥è‡ªèŠ‚ç‚¹â€œ%sâ€ã€ç›®æ ‡èŠ‚ç‚¹â€œ%sâ€ï¼‰ã€‚"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
-msgstr "(忽略)"
+msgstr "[忽略]"
#: editor/plugins/script_text_editor.cpp
msgid "Line"
@@ -7276,27 +7283,27 @@ msgstr "使用GLES2渲染器时ä¸å¯ç”¨ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
-msgstr "自由视图 左"
+msgstr "自由观看å‘å·¦"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Right"
-msgstr "自由视图 å³"
+msgstr "自由观看å‘å³"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Forward"
-msgstr "自由视图 å‰"
+msgstr "自由观看å‘å‰"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Backwards"
-msgstr "自由视图 åŽ"
+msgstr "自由观看å‘åŽ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
-msgstr "自由视图 上"
+msgstr "自由观看å‘上"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Down"
-msgstr "自由视图 下"
+msgstr "自由观看å‘下"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Speed Modifier"
@@ -7330,6 +7337,11 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"点击以切æ¢å¯è§çжæ€ã€‚\n"
+"\n"
+"ç眼:标志å¯è§ã€‚\n"
+"闭眼:标志éšè—。\n"
+"åŠç眼:标志也å¯ç©¿è¿‡ä¸é€æ˜Žçš„表é¢å¯è§ï¼ˆâ€œXå…‰â€ï¼‰ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7359,11 +7371,11 @@ msgstr "使用å¸é™„"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr "底视图"
+msgstr "仰视图。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr "顶视图"
+msgstr "俯视"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
@@ -7371,7 +7383,7 @@ msgstr "åŽè§†å›¾"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr "å‰è§†å›¾"
+msgstr "正视图"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View"
@@ -7383,7 +7395,7 @@ msgstr "å³è§†å›¾"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal View"
-msgstr "åˆ‡æ¢æŠ•å½±/正交视图"
+msgstr "切æ¢é€è§†å›¾/正交视图"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
@@ -7399,7 +7411,7 @@ msgstr "èšç„¦é€‰ä¸­é¡¹"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Toggle Freelook"
-msgstr "切æ¢è‡ªç”±è§‚察模å¼"
+msgstr "切æ¢è‡ªç”±è§‚看"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -7408,7 +7420,7 @@ msgstr "å˜æ¢"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Object to Floor"
-msgstr "将对象å¸é™„到地æ¿"
+msgstr "å¸é™„物体到地é¢"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -10354,9 +10366,8 @@ msgid "Instance Child Scene"
msgstr "实例化å­åœºæ™¯"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "添加脚本"
+msgstr "分离脚本"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10519,6 +10530,8 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"无法附加脚本:没有语言被注册。\n"
+"è¿™å¯èƒ½æ˜¯å› ä¸ºè¿™ä¸ªç¼–辑器是在所有语言模å—被关闭的状æ€ä¸‹è¢«æž„建的。"
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10567,14 +10580,12 @@ msgid ""
msgstr "实例化场景文件为一个节点,如果没有根节点则创建一个继承自该文件的场景。"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
msgstr "为选中节点创建或设置脚本。"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "清除选中节点的脚本。"
+msgstr "从选中节点分离脚本。"
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -11780,9 +11791,8 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "未在编辑器设置或预设中é…置调试密钥库。"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
-msgstr "未在编辑器设置或预设中é…置调试密钥库。"
+msgstr "用于å‘布的密钥存储在导出预设中未被正确设置。"
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -11811,26 +11821,28 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"“android/modulesâ€é¡¹ç›®è®¾ç½®ï¼ˆå˜æ›´äºŽGodot 3.2.2)中包å«äº†æ— æ•ˆæ¨¡"
+"组“GodotPaymentV3â€.\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
+msgstr "å¿…é¡»å¯ç”¨â€œä½¿ç”¨è‡ªå®šä¹‰æž„å»ºâ€æ‰èƒ½ä½¿ç”¨æ’件。"
#: platform/android/export/export.cpp
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
-msgstr ""
+msgstr "“自由度â€åªæœ‰åœ¨å½““Xr Modeâ€æ˜¯â€œOculus Mobile VRâ€æ—¶æ‰æœ‰æ•ˆã€‚"
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
+msgstr "“手部追踪â€åªæœ‰åœ¨å½““Xr Modeâ€æ˜¯â€œOculus Mobile VRâ€æ—¶æ‰æœ‰æ•ˆã€‚"
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
+msgstr "“焦点感知â€åªæœ‰åœ¨å½““Xr Modeâ€æ˜¯â€œOculus Mobile VRâ€æ—¶æ‰æœ‰æ•ˆã€‚"
#: platform/android/export/export.cpp
msgid ""
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 4832307ce5..90c85892f6 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -793,6 +793,10 @@ msgid "Method in target node must be specified."
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 22051058ad..129a3fdad4 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -28,7 +28,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"PO-Revision-Date: 2020-06-22 06:40+0000\n"
"Last-Translator: BinotaLIU <me@binota.org>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hant/>\n"
@@ -37,7 +37,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -766,6 +766,11 @@ msgid "Method in target node must be specified."
msgstr "必須指定目標節點的方法。"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Method name must be a valid identifier."
+msgstr "åç¨±ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„識別符:"
+
+#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
@@ -9880,7 +9885,7 @@ msgstr "新增事件"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr "Button(按鈕)"
+msgstr "Button (按鈕)"
#: editor/project_settings_editor.cpp
msgid "Left Button."
diff --git a/modules/bullet/SCsub b/modules/bullet/SCsub
index b853ebfc63..21bdcca18e 100644
--- a/modules/bullet/SCsub
+++ b/modules/bullet/SCsub
@@ -201,8 +201,8 @@ if env["builtin_bullet"]:
env_bullet.Append(CPPFLAGS=["-isystem", Dir(thirdparty_dir).path])
else:
env_bullet.Prepend(CPPPATH=[thirdparty_dir])
- # if env['target'] == "debug" or env['target'] == "release_debug":
- # env_bullet.Append(CPPDEFINES=['BT_DEBUG'])
+ if env["target"] == "debug" or env["target"] == "release_debug":
+ env_bullet.Append(CPPDEFINES=["DEBUG"])
env_bullet.Append(CPPDEFINES=["BT_USE_OLD_DAMPING_METHOD"])
diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp
index 6904baba3d..cfe8cd5322 100644
--- a/modules/bullet/space_bullet.cpp
+++ b/modules/bullet/space_bullet.cpp
@@ -153,6 +153,15 @@ int BulletPhysicsDirectSpaceState::intersect_shape(const RID &p_shape, const Tra
}
bool BulletPhysicsDirectSpaceState::cast_motion(const RID &p_shape, const Transform &p_xform, const Vector3 &p_motion, float p_margin, float &r_closest_safe, float &r_closest_unsafe, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas, ShapeRestInfo *r_info) {
+ r_closest_safe = 0.0f;
+ r_closest_unsafe = 0.0f;
+ btVector3 bt_motion;
+ G_TO_B(p_motion, bt_motion);
+
+ if (bt_motion.fuzzyZero()) {
+ return false;
+ }
+
ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->getornull(p_shape);
ERR_FAIL_COND_V(!shape, false);
@@ -164,9 +173,6 @@ bool BulletPhysicsDirectSpaceState::cast_motion(const RID &p_shape, const Transf
}
btConvexShape *bt_convex_shape = static_cast<btConvexShape *>(btShape);
- btVector3 bt_motion;
- G_TO_B(p_motion, bt_motion);
-
btTransform bt_xform_from;
G_TO_B(p_xform, bt_xform_from);
UNSCALE_BT_BASIS(bt_xform_from);
@@ -180,9 +186,6 @@ bool BulletPhysicsDirectSpaceState::cast_motion(const RID &p_shape, const Transf
space->dynamicsWorld->convexSweepTest(bt_convex_shape, bt_xform_from, bt_xform_to, btResult, space->dynamicsWorld->getDispatchInfo().m_allowedCcdPenetration);
- r_closest_unsafe = 1.0;
- r_closest_safe = 1.0;
-
if (btResult.hasHit()) {
const btScalar l = bt_motion.length();
r_closest_unsafe = btResult.m_closestHitFraction;
@@ -198,6 +201,9 @@ bool BulletPhysicsDirectSpaceState::cast_motion(const RID &p_shape, const Transf
r_info->collider_id = collision_object->get_instance_id();
r_info->shape = btResult.m_shapeId;
}
+ } else {
+ r_closest_safe = 1.0f;
+ r_closest_unsafe = 1.0f;
}
bulletdelete(bt_convex_shape);
diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp
index ded0b970dc..d0c9bf5d38 100644
--- a/modules/csg/csg.cpp
+++ b/modules/csg/csg.cpp
@@ -904,8 +904,12 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_
vertices[p_segment_indices[closest_idx]].point
};
if (are_segements_parallel(edge1, edge2, vertex_snap2)) {
- degenerate_points.push_back(outer_edge_idx[0]);
- degenerate_points.push_back(outer_edge_idx[1]);
+ if (!degenerate_points.find(outer_edge_idx[0])) {
+ degenerate_points.push_back(outer_edge_idx[0]);
+ }
+ if (!degenerate_points.find(outer_edge_idx[1])) {
+ degenerate_points.push_back(outer_edge_idx[1]);
+ }
continue;
}
diff --git a/platform/haiku/SCsub b/platform/haiku/SCsub
deleted file mode 100644
index dbff6c5ae9..0000000000
--- a/platform/haiku/SCsub
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python
-
-Import("env")
-
-common_haiku = [
- "os_haiku.cpp",
- "context_gl_haiku.cpp",
- "haiku_application.cpp",
- "haiku_direct_window.cpp",
- "haiku_gl_view.cpp",
- "key_mapping_haiku.cpp",
- "audio_driver_media_kit.cpp",
-]
-
-target = env.add_program("#bin/godot", ["godot_haiku.cpp"] + common_haiku)
-
-command = env.Command("#bin/godot.rsrc", "#platform/haiku/godot.rdef", ["rc -o $TARGET $SOURCE"])
-
-
-def addResourcesAction(target=None, source=None, env=None):
- return env.Execute("xres -o " + File(target)[0].path + " bin/godot.rsrc")
-
-
-env.AddPostAction(target, addResourcesAction)
-env.Depends(target, command)
diff --git a/platform/haiku/audio_driver_media_kit.cpp b/platform/haiku/audio_driver_media_kit.cpp
deleted file mode 100644
index 2fbbeeb176..0000000000
--- a/platform/haiku/audio_driver_media_kit.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*************************************************************************/
-/* audio_driver_media_kit.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "audio_driver_media_kit.h"
-
-#ifdef MEDIA_KIT_ENABLED
-
-#include "core/project_settings.h"
-
-int32_t *AudioDriverMediaKit::samples_in = nullptr;
-
-Error AudioDriverMediaKit::init() {
- active = false;
-
- mix_rate = GLOBAL_GET("audio/mix_rate");
- speaker_mode = SPEAKER_MODE_STEREO;
- channels = 2;
-
- int latency = GLOBAL_GET("audio/output_latency");
- buffer_size = next_power_of_2(latency * mix_rate / 1000);
- samples_in = memnew_arr(int32_t, buffer_size * channels);
-
- media_raw_audio_format format;
- format = media_raw_audio_format::wildcard;
- format.frame_rate = mix_rate;
- format.channel_count = channels;
- format.format = media_raw_audio_format::B_AUDIO_INT;
- format.byte_order = B_MEDIA_LITTLE_ENDIAN;
- format.buffer_size = buffer_size * sizeof(int32_t) * channels;
-
- player = new BSoundPlayer(
- &format,
- "godot_sound_server",
- AudioDriverMediaKit::PlayBuffer,
- nullptr,
- this);
-
- if (player->InitCheck() != B_OK) {
- fprintf(stderr, "MediaKit ERR: can not create a BSoundPlayer instance\n");
- ERR_FAIL_COND_V(player == nullptr, ERR_CANT_OPEN);
- }
-
- player->Start();
-
- return OK;
-}
-
-void AudioDriverMediaKit::PlayBuffer(void *cookie, void *buffer, size_t size, const media_raw_audio_format &format) {
- AudioDriverMediaKit *ad = (AudioDriverMediaKit *)cookie;
- int32_t *buf = (int32_t *)buffer;
-
- if (!ad->active) {
- for (unsigned int i = 0; i < ad->buffer_size * ad->channels; i++) {
- AudioDriverMediaKit::samples_in[i] = 0;
- }
- } else {
- ad->lock();
- ad->audio_server_process(ad->buffer_size, AudioDriverMediaKit::samples_in);
- ad->unlock();
- }
-
- for (unsigned int i = 0; i < ad->buffer_size * ad->channels; i++) {
- buf[i] = AudioDriverMediaKit::samples_in[i];
- }
-}
-
-void AudioDriverMediaKit::start() {
- active = true;
-}
-
-int AudioDriverMediaKit::get_mix_rate() const {
- return mix_rate;
-}
-
-AudioDriverMediaKit::SpeakerMode AudioDriverMediaKit::get_speaker_mode() const {
- return speaker_mode;
-}
-
-void AudioDriverMediaKit::lock() {
- if (!mutex)
- return;
-
- mutex.lock();
-}
-
-void AudioDriverMediaKit::unlock() {
- if (!mutex)
- return;
-
- mutex.unlock();
-}
-
-void AudioDriverMediaKit::finish() {
- delete player;
-
- if (samples_in) {
- memdelete_arr(samples_in);
- };
-}
-
-AudioDriverMediaKit::AudioDriverMediaKit() {
- player = nullptr;
-}
-
-AudioDriverMediaKit::~AudioDriverMediaKit() {
-}
-
-#endif
diff --git a/platform/haiku/audio_driver_media_kit.h b/platform/haiku/audio_driver_media_kit.h
deleted file mode 100644
index 8272780fa7..0000000000
--- a/platform/haiku/audio_driver_media_kit.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*************************************************************************/
-/* audio_driver_media_kit.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "servers/audio_server.h"
-
-#ifdef MEDIA_KIT_ENABLED
-
-#include "core/os/mutex.h"
-#include "core/os/thread.h"
-
-#include <kernel/image.h> // needed for image_id
-
-#include <SoundPlayer.h>
-
-class AudioDriverMediaKit : public AudioDriver {
- Mutex mutex;
-
- BSoundPlayer *player;
- static int32_t *samples_in;
-
- static void PlayBuffer(void *cookie, void *buffer, size_t size, const media_raw_audio_format &format);
-
- unsigned int mix_rate;
- SpeakerMode speaker_mode;
- unsigned int buffer_size;
- int channels;
-
- bool active;
-
-public:
- const char *get_name() const {
- return "MediaKit";
- };
-
- virtual Error init();
- virtual void start();
- virtual int get_mix_rate() const;
- virtual SpeakerMode get_speaker_mode() const;
- virtual void lock();
- virtual void unlock();
- virtual void finish();
-
- AudioDriverMediaKit();
- ~AudioDriverMediaKit();
-};
-
-#endif
diff --git a/platform/haiku/context_gl_haiku.cpp b/platform/haiku/context_gl_haiku.cpp
deleted file mode 100644
index 3c4d43ff71..0000000000
--- a/platform/haiku/context_gl_haiku.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*************************************************************************/
-/* context_gl_haiku.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "context_gl_haiku.h"
-
-#if defined(OPENGL_ENABLED)
-
-ContextGL_Haiku::ContextGL_Haiku(HaikuDirectWindow *p_window) {
- window = p_window;
-
- uint32 type = BGL_RGB | BGL_DOUBLE | BGL_DEPTH;
- view = new HaikuGLView(window->Bounds(), type);
-
- use_vsync = false;
-}
-
-ContextGL_Haiku::~ContextGL_Haiku() {
- delete view;
-}
-
-Error ContextGL_Haiku::initialize() {
- window->AddChild(view);
- window->SetHaikuGLView(view);
-
- return OK;
-}
-
-void ContextGL_Haiku::release_current() {
- view->UnlockGL();
-}
-
-void ContextGL_Haiku::make_current() {
- view->LockGL();
-}
-
-void ContextGL_Haiku::swap_buffers() {
- view->SwapBuffers(use_vsync);
-}
-
-int ContextGL_Haiku::get_window_width() {
- return window->Bounds().IntegerWidth();
-}
-
-int ContextGL_Haiku::get_window_height() {
- return window->Bounds().IntegerHeight();
-}
-
-void ContextGL_Haiku::set_use_vsync(bool p_use) {
- use_vsync = p_use;
-}
-
-bool ContextGL_Haiku::is_using_vsync() const {
- return use_vsync;
-}
-
-#endif
diff --git a/platform/haiku/context_gl_haiku.h b/platform/haiku/context_gl_haiku.h
deleted file mode 100644
index c5d258915d..0000000000
--- a/platform/haiku/context_gl_haiku.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*************************************************************************/
-/* context_gl_haiku.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef CONTEXT_GL_HAIKU_H
-#define CONTEXT_GL_HAIKU_H
-
-#if defined(OPENGL_ENABLED)
-
-#include "haiku_direct_window.h"
-#include "haiku_gl_view.h"
-
-class ContextGL_Haiku {
-private:
- HaikuGLView *view;
- HaikuDirectWindow *window;
-
- bool use_vsync;
-
-public:
- Error initialize();
- void release_current();
- void make_current();
- void swap_buffers();
- int get_window_width();
- int get_window_height();
-
- void set_use_vsync(bool p_use);
- bool is_using_vsync() const;
-
- ContextGL_Haiku(HaikuDirectWindow *p_window);
- ~ContextGL_Haiku();
-};
-
-#endif
-#endif
diff --git a/platform/haiku/detect.py b/platform/haiku/detect.py
deleted file mode 100644
index 0b84df8f9b..0000000000
--- a/platform/haiku/detect.py
+++ /dev/null
@@ -1,158 +0,0 @@
-import os
-import sys
-
-
-def is_active():
- return True
-
-
-def get_name():
- return "Haiku"
-
-
-def can_build():
-
- if os.name != "posix" or sys.platform == "darwin":
- return False
-
- return True
-
-
-def get_opts():
- from SCons.Variables import EnumVariable
-
- return [
- EnumVariable("debug_symbols", "Add debugging symbols to release builds", "yes", ("yes", "no", "full")),
- ]
-
-
-def get_flags():
-
- return []
-
-
-def configure(env):
-
- ## Build type
-
- if env["target"] == "release":
- env.Prepend(CCFLAGS=["-O3"])
- if env["debug_symbols"] == "yes":
- env.Prepend(CCFLAGS=["-g1"])
- if env["debug_symbols"] == "full":
- env.Prepend(CCFLAGS=["-g2"])
-
- elif env["target"] == "release_debug":
- env.Prepend(CCFLAGS=["-O2", "-DDEBUG_ENABLED"])
- if env["debug_symbols"] == "yes":
- env.Prepend(CCFLAGS=["-g1"])
- if env["debug_symbols"] == "full":
- env.Prepend(CCFLAGS=["-g2"])
-
- elif env["target"] == "debug":
- env.Prepend(CCFLAGS=["-g3", "-DDEBUG_ENABLED", "-DDEBUG_MEMORY_ENABLED"])
-
- ## Architecture
-
- is64 = sys.maxsize > 2 ** 32
- if env["bits"] == "default":
- env["bits"] = "64" if is64 else "32"
-
- ## Compiler configuration
-
- env["CC"] = "gcc-x86"
- env["CXX"] = "g++-x86"
-
- ## Dependencies
-
- if not env["builtin_libwebp"]:
- env.ParseConfig("pkg-config libwebp --cflags --libs")
-
- # freetype depends on libpng and zlib, so bundling one of them while keeping others
- # as shared libraries leads to weird issues
- if env["builtin_freetype"] or env["builtin_libpng"] or env["builtin_zlib"]:
- env["builtin_freetype"] = True
- env["builtin_libpng"] = True
- env["builtin_zlib"] = True
-
- if not env["builtin_freetype"]:
- env.ParseConfig("pkg-config freetype2 --cflags --libs")
-
- if not env["builtin_libpng"]:
- env.ParseConfig("pkg-config libpng16 --cflags --libs")
-
- if not env["builtin_bullet"]:
- # We need at least version 2.88
- import subprocess
-
- bullet_version = subprocess.check_output(["pkg-config", "bullet", "--modversion"]).strip()
- if bullet_version < "2.88":
- # Abort as system bullet was requested but too old
- print(
- "Bullet: System version {0} does not match minimal requirements ({1}). Aborting.".format(
- bullet_version, "2.88"
- )
- )
- sys.exit(255)
- env.ParseConfig("pkg-config bullet --cflags --libs")
-
- if not env["builtin_enet"]:
- env.ParseConfig("pkg-config libenet --cflags --libs")
-
- if not env["builtin_squish"]:
- env.ParseConfig("pkg-config libsquish --cflags --libs")
-
- if not env["builtin_zstd"]:
- env.ParseConfig("pkg-config libzstd --cflags --libs")
-
- # Sound and video libraries
- # Keep the order as it triggers chained dependencies (ogg needed by others, etc.)
-
- if not env["builtin_libtheora"]:
- env["builtin_libogg"] = False # Needed to link against system libtheora
- env["builtin_libvorbis"] = False # Needed to link against system libtheora
- env.ParseConfig("pkg-config theora theoradec --cflags --libs")
-
- if not env["builtin_libvpx"]:
- env.ParseConfig("pkg-config vpx --cflags --libs")
-
- if not env["builtin_libvorbis"]:
- env["builtin_libogg"] = False # Needed to link against system libvorbis
- env.ParseConfig("pkg-config vorbis vorbisfile --cflags --libs")
-
- if not env["builtin_opus"]:
- env["builtin_libogg"] = False # Needed to link against system opus
- env.ParseConfig("pkg-config opus opusfile --cflags --libs")
-
- if not env["builtin_libogg"]:
- env.ParseConfig("pkg-config ogg --cflags --libs")
-
- if env["builtin_libtheora"]:
- list_of_x86 = ["x86_64", "x86", "i386", "i586"]
- if any(platform.machine() in s for s in list_of_x86):
- env["x86_libtheora_opt_gcc"] = True
-
- if not env["builtin_wslay"]:
- env.ParseConfig("pkg-config libwslay --cflags --libs")
-
- if not env["builtin_mbedtls"]:
- # mbedTLS does not provide a pkgconfig config yet. See https://github.com/ARMmbed/mbedtls/issues/228
- env.Append(LIBS=["mbedtls", "mbedcrypto", "mbedx509"])
-
- if not env["builtin_miniupnpc"]:
- # No pkgconfig file so far, hardcode default paths.
- env.Prepend(CPPPATH=["/system/develop/headers/x86/miniupnpc"])
- env.Append(LIBS=["miniupnpc"])
-
- # On Linux wchar_t should be 32-bits
- # 16-bit library shouldn't be required due to compiler optimisations
- if not env["builtin_pcre2"]:
- env.ParseConfig("pkg-config libpcre2-32 --cflags --libs")
-
- ## Flags
-
- env.Prepend(CPPPATH=["#platform/haiku"])
- env.Append(CPPDEFINES=["UNIX_ENABLED", "OPENGL_ENABLED", "GLES_ENABLED"])
- env.Append(CPPDEFINES=["MEDIA_KIT_ENABLED"])
- env.Append(CPPDEFINES=["PTHREAD_NO_RENAME"]) # TODO: enable when we have pthread_setname_np
- env.Append(LIBS=["be", "game", "media", "network", "bnetapi", "z", "GL"])
diff --git a/platform/haiku/godot.rdef b/platform/haiku/godot.rdef
deleted file mode 100644
index a55cddbf0d..0000000000
--- a/platform/haiku/godot.rdef
+++ /dev/null
@@ -1,60 +0,0 @@
-resource app_version {
- major = 2,
- middle = 0,
- minor = 0,
-
- variety = B_APPV_FINAL,
- internal = 0,
-
- short_info = "Godot Game Engine",
- long_info = "An advanced, feature packed, multi-platform 2D and 3D game engine."
-};
-
-resource app_signature "application/x-vnd.godot";
-
-resource vector_icon {
- $"6E6369660403A39F9F05FF03478CBF03414042090A04B37FB379CC26B379CC26"
- $"CC20B37FCC200A09B5E9C41B2AC240B8E1BDFBBFA1BDA4C6A7BDFFCA1AC45CC9"
- $"7AC607C01CC75BB6F4C65A062AFE9FFF9F69FE7FFEDFCF0FC95FC3D7C95FC51E"
- $"C95FC51EC95FC53EC92BC565C94AC55BC92BC565C728C60BC728C60BC712C612"
- $"C6E6C600C6F9C60EC6D3C5F2C6C7C5C4C6C7C5DCC6C7C5C4C460C4E5C4BCC4E5"
- $"C626C4E5C626C4E5C64BC4A5C670C4CAC66BC4A5C670C1EDC6CFC1EDC6CFC1E9"
- $"C6CFC1E2C6D0C1E6C6D0C1D1C6D0C1B2C6BEC1BFC6C9C1A2C6AFC19851C198C6"
- $"9BC19851C505C031C507C507C016C507BFFCC507C507BE94C505BE9451BE9451"
- $"BE94C69BBE7BC6BEBE8BC6AFBE6DC6C9BE4AC6D0BE5CC6D0BE47C6D0BE40C6CF"
- $"BE44C6CFBE40C6CFBB87C670BB87C670BB63C66BBB47C626BB47C64BBB47C626"
- $"C4BCB965C460B965C5C4B965C5C4B965C5DCB947C600B95AC5F2B934C60EB904"
- $"C60BB91BC612B904C60BB701C565B701C565B6E3C55BB6CEC51EB6CEC53EB6CE"
- $"C51EC3D7B590C36CB590C36CB581C3B0B578C43AB578C3F5B578C78FBFF8CA27"
- $"BA2ACA22BFF8CA27BFFABFFCCA27BFFCCA27C5CACA22CA7CC43ACA7CC78FCA7C"
- $"C3FBCA67C37ECA754ACA67C37E0639F6F97FFEF8E7FFF9F6FFFFFFFFFF03B67D"
- $"BDEEC31FB730C35CB730C35CB74EC3662BC3A22BC3822BC3A2C4E8B8D1C55EB8"
- $"D1C406B8D1C406B8D1C3F0B8ECC3CDB8DBC3DBB8FDC3BFB929C3BDB913C3B9B9"
- $"29C3BDBB9FC436BB9FC436BBC2C43CBBDCC47EBBDCC45BBBDCC47EC5E6BE00C6"
- $"31BE00C4BBBE00C4BBBE00C4A7BE16C486BE08C494BE24C479BE4AC471BE37C4"
- $"71BE4AC471BE4BC016C473C1E2C471C1E2C471C1F6C471C217C486C209C479C2"
- $"25C494C22DC4BBC22DC4A7C22DC4BBC631C451C5E6C451C47EC451C47EC451C4"
- $"5BC48DC436C46AC43CC48DC436C704C3BDC704C3BDC719C3B9C741C3CDC730C3"
- $"BF53C3DBC75CC406C75CC3F0C75CC406C55EC8CAC4E8C8CAC3A2C8CAC3A2C8CA"
- $"C382C8FDC35CC8DFC366C8FDC35CC977C333BDEEC97ABDEEC97ABDEEC9F1BD56"
- $"CAC9BC0BCA60BCB6CA3DBB1CC8D9B981C991BA47C82FB9D7C6EDBAA0C789BA38"
- $"C69FBA52C5F0B9D0C647BA12C59BB98BC4E0B91FC53BB959C4FBB855C50EB6C0"
- $"C509B78FC424B64AC22DB5C4C32AB5FCC1C8B66DC11BB7D9C16BB725C0BCB7C9"
- $"BFFCB7C2C05CB7C3BFFCB7C2BFFCB7C2BFFCB7C2BFFBB7C2BFFAB7C2BFFAB7C2"
- $"BFF9B7C2BFF8B7C2BFF9B7C2BFF8B7C2BFF8B7C2BFF8B7C2BF98B7C3BED9B7D9"
- $"BF38B7C9BE88B725BDC7B5C4BE2CB66DBCCAB5FCBAE6B6C0BBD0B64ABAEBB78F"
- $"BB13B91F34B855BAB8B959BA04B9D0BA59B98BB9ADBA12B907BAA0B955BA52B8"
- $"6ABA38B71AB981B7C5B9D7B663BA47B52BBC0BB5B7BB1CB594BCB6B679BDEEB6"
- $"02BD56B679BDEE0005BD3EC06CBD3EC06CBD3EC197BB2147BC4C47B9F647B904"
- $"C06CB904C197B904BF41BB21BE4FB9F6BE4FBC4CBE4FBD3EC06CBD3EBF41BD3E"
- $"C06C0005BCBC42BCBC42BCBCC153BB55C1F3BC1BC1F3BA8EC1F3B9ED42B9EDC1"
- $"53B9EDBFC6BB55BF25BA8EBF25BC1BBF25BCBC42BCBCBFC6BCBC420007C01BC2"
- $"BBC01BC2BBBFBAC2BBBF6CC21CBF6CC274BF6CC21CBF6CC02ABF6CC02ABF6CBF"
- $"D3C01BBF8CBFBABF8CC07BBF8CC0C9C02AC0C9BFD3C0C9C02AC0C9C21CC0C9C2"
- $"1CC0C9C274C01BC2BBC07BC2BBC01BC2BB0005C2F7C06CC2F7C06CC2F7C197C5"
- $"1547C3E947C64047C732C06CC732C197C732BF41C515BE4FC640BE4FC3E9BE4F"
- $"C2F7C06CC2F7BF41C2F7C06C0005C37942C37942C379C153C4E1C1F3C41AC1F3"
- $"C5A7C1F3C64842C648C153C648BFC6C4E1BF25C5A7BF25C41ABF25C37942C379"
- $"BFC6C37942090A0000000A010101000A020102000A020103000A010104000A03"
- $"0105000A010106000A010107000A03010800"
-};
diff --git a/platform/haiku/godot_haiku.cpp b/platform/haiku/godot_haiku.cpp
deleted file mode 100644
index 0657f4c052..0000000000
--- a/platform/haiku/godot_haiku.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*************************************************************************/
-/* godot_haiku.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "main/main.h"
-#include "os_haiku.h"
-
-int main(int argc, char *argv[]) {
- OS_Haiku os;
-
- Error error = Main::setup(argv[0], argc - 1, &argv[1]);
- if (error != OK) {
- return 255;
- }
-
- if (Main::start()) {
- os.run();
- }
-
- Main::cleanup();
-
- return os.get_exit_code();
-}
diff --git a/platform/haiku/haiku_application.cpp b/platform/haiku/haiku_application.cpp
deleted file mode 100644
index 82d9c093e1..0000000000
--- a/platform/haiku/haiku_application.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************************************/
-/* haiku_application.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "haiku_application.h"
-
-HaikuApplication::HaikuApplication() :
- BApplication("application/x-vnd.godot") {
-}
diff --git a/platform/haiku/haiku_application.h b/platform/haiku/haiku_application.h
deleted file mode 100644
index 2e04d921bf..0000000000
--- a/platform/haiku/haiku_application.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*************************************************************************/
-/* haiku_application.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef HAIKU_APPLICATION_H
-#define HAIKU_APPLICATION_H
-
-#include <kernel/image.h> // needed for image_id
-
-#include <Application.h>
-
-class HaikuApplication : public BApplication {
-public:
- HaikuApplication();
-};
-
-#endif
diff --git a/platform/haiku/haiku_direct_window.cpp b/platform/haiku/haiku_direct_window.cpp
deleted file mode 100644
index 0a40f847f4..0000000000
--- a/platform/haiku/haiku_direct_window.cpp
+++ /dev/null
@@ -1,363 +0,0 @@
-/*************************************************************************/
-/* haiku_direct_window.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include <UnicodeChar.h>
-
-#include "core/os/keyboard.h"
-#include "haiku_direct_window.h"
-#include "key_mapping_haiku.h"
-#include "main/main.h"
-
-HaikuDirectWindow::HaikuDirectWindow(BRect p_frame) :
- BDirectWindow(p_frame, "Godot", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE) {
- last_mouse_pos_valid = false;
- last_buttons_state = 0;
- last_button_mask = 0;
- last_key_modifier_state = 0;
-
- view = nullptr;
- update_runner = nullptr;
- input = nullptr;
- main_loop = nullptr;
-}
-
-HaikuDirectWindow::~HaikuDirectWindow() {
-}
-
-void HaikuDirectWindow::SetHaikuGLView(HaikuGLView *p_view) {
- view = p_view;
-}
-
-void HaikuDirectWindow::StartMessageRunner() {
- update_runner = new BMessageRunner(BMessenger(this),
- new BMessage(REDRAW_MSG), 1000000 / 60 /* 60 fps */);
-}
-
-void HaikuDirectWindow::StopMessageRunner() {
- delete update_runner;
-}
-
-void HaikuDirectWindow::SetInput(InputDefault *p_input) {
- input = p_input;
-}
-
-void HaikuDirectWindow::SetMainLoop(MainLoop *p_main_loop) {
- main_loop = p_main_loop;
-}
-
-bool HaikuDirectWindow::QuitRequested() {
- StopMessageRunner();
- main_loop->notification(NOTIFICATION_WM_CLOSE_REQUEST);
- return false;
-}
-
-void HaikuDirectWindow::DirectConnected(direct_buffer_info *info) {
- view->DirectConnected(info);
- view->EnableDirectMode(true);
-}
-
-void HaikuDirectWindow::MessageReceived(BMessage *message) {
- switch (message->what) {
- case REDRAW_MSG:
- if (Main::iteration()) {
- view->EnableDirectMode(false);
- Quit();
- }
- break;
-
- default:
- BDirectWindow::MessageReceived(message);
- }
-}
-
-void HaikuDirectWindow::DispatchMessage(BMessage *message, BHandler *handler) {
- switch (message->what) {
- case B_MOUSE_DOWN:
- case B_MOUSE_UP:
- HandleMouseButton(message);
- break;
-
- case B_MOUSE_MOVED:
- HandleMouseMoved(message);
- break;
-
- case B_MOUSE_WHEEL_CHANGED:
- HandleMouseWheelChanged(message);
- break;
-
- case B_KEY_DOWN:
- case B_KEY_UP:
- HandleKeyboardEvent(message);
- break;
-
- case B_MODIFIERS_CHANGED:
- HandleKeyboardModifierEvent(message);
- break;
-
- case B_WINDOW_RESIZED:
- HandleWindowResized(message);
- break;
-
- case LOCKGL_MSG:
- view->LockGL();
- break;
-
- case UNLOCKGL_MSG:
- view->UnlockGL();
- break;
-
- default:
- BDirectWindow::DispatchMessage(message, handler);
- }
-}
-
-void HaikuDirectWindow::HandleMouseButton(BMessage *message) {
- BPoint where;
- if (message->FindPoint("where", &where) != B_OK) {
- return;
- }
-
- uint32 modifiers = message->FindInt32("modifiers");
- uint32 buttons = message->FindInt32("buttons");
- uint32 button = buttons ^ last_buttons_state;
- last_buttons_state = buttons;
-
- // TODO: implement the mouse_mode checks
- /*
- if (mouse_mode == MOUSE_MODE_CAPTURED) {
- event.xbutton.x=last_mouse_pos.x;
- event.xbutton.y=last_mouse_pos.y;
- }
- */
-
- Ref<InputEventMouseButton> mouse_event;
- mouse_event.instance();
-
- mouse_event->set_button_mask(GetMouseButtonState(buttons));
- mouse_event->set_position({ where.x, where.y });
- mouse_event->set_global_position({ where.x, where.y });
- GetKeyModifierState(mouse_event, modifiers);
-
- switch (button) {
- default:
- case B_PRIMARY_MOUSE_BUTTON:
- mouse_event->set_button_index(1);
- break;
-
- case B_SECONDARY_MOUSE_BUTTON:
- mouse_event->set_button_index(2);
- break;
-
- case B_TERTIARY_MOUSE_BUTTON:
- mouse_event->set_button_index(3);
- break;
- }
-
- mouse_event->set_pressed(message->what == B_MOUSE_DOWN);
-
- if (message->what == B_MOUSE_DOWN && mouse_event->get_button_index() == 1) {
- int32 clicks = message->FindInt32("clicks");
-
- if (clicks > 1) {
- mouse_event->set_doubleclick(true);
- }
- }
-
- input->parse_input_event(mouse_event);
-}
-
-void HaikuDirectWindow::HandleMouseMoved(BMessage *message) {
- BPoint where;
- if (message->FindPoint("where", &where) != B_OK) {
- return;
- }
-
- Point2i pos(where.x, where.y);
- uint32 modifiers = message->FindInt32("modifiers");
- uint32 buttons = message->FindInt32("buttons");
-
- if (!last_mouse_pos_valid) {
- last_mouse_position = pos;
- last_mouse_pos_valid = true;
- }
-
- Point2i rel = pos - last_mouse_position;
-
- Ref<InputEventMouseMotion> motion_event;
- motion_event.instance();
- GetKeyModifierState(motion_event, modifiers);
-
- motion_event->set_button_mask(GetMouseButtonState(buttons));
- motion_event->set_position({ pos.x, pos.y });
- input->set_mouse_position(pos);
- motion_event->set_global_position({ pos.x, pos.y });
- motion_event->set_speed({ input->get_last_mouse_speed().x,
- input->get_last_mouse_speed().y });
-
- motion_event->set_relative({ rel.x, rel.y });
-
- last_mouse_position = pos;
-
- input->parse_input_event(motion_event);
-}
-
-void HaikuDirectWindow::HandleMouseWheelChanged(BMessage *message) {
- float wheel_delta_y = 0;
- if (message->FindFloat("be:wheel_delta_y", &wheel_delta_y) != B_OK) {
- return;
- }
-
- Ref<InputEventMouseButton> mouse_event;
- mouse_event.instance();
- //GetKeyModifierState(mouse_event, modifiers);
-
- mouse_event->set_button_index(wheel_delta_y < 0 ? 4 : 5);
- mouse_event->set_button_mask(last_button_mask);
- mouse_event->set_position({ last_mouse_position.x,
- last_mouse_position.y });
- mouse_event->set_global_position({ last_mouse_position.x,
- last_mouse_position.y });
-
- mouse_event->set_pressed(true);
- input->parse_input_event(mouse_event);
-
- mouse_event->set_pressed(false);
- input->parse_input_event(mouse_event);
-}
-
-void HaikuDirectWindow::HandleKeyboardEvent(BMessage *message) {
- int32 raw_char = 0;
- int32 key = 0;
- int32 modifiers = 0;
-
- if (message->FindInt32("raw_char", &raw_char) != B_OK) {
- return;
- }
-
- if (message->FindInt32("key", &key) != B_OK) {
- return;
- }
-
- if (message->FindInt32("modifiers", &modifiers) != B_OK) {
- return;
- }
-
- Ref<InputEventKey> event;
- event.instance();
- GetKeyModifierState(event, modifiers);
- event->set_pressed(message->what == B_KEY_DOWN);
- event->set_keycode(KeyMappingHaiku::get_keysym(raw_char, key));
- event->set_physical_keycode(KeyMappingHaiku::get_keysym(raw_char, key));
- event->set_echo(message->HasInt32("be:key_repeat"));
- event->set_unicode(0);
-
- const char *bytes = nullptr;
- if (message->FindString("bytes", &bytes) == B_OK) {
- event->set_unicode(BUnicodeChar::FromUTF8(&bytes));
- }
-
- //make it consistent across platforms.
- if (event->get_keycode() == KEY_BACKTAB) {
- event->set_keycode(KEY_TAB);
- event->set_physical_keycode(KEY_TAB);
- event->set_shift(true);
- }
-
- input->parse_input_event(event);
-}
-
-void HaikuDirectWindow::HandleKeyboardModifierEvent(BMessage *message) {
- int32 old_modifiers = 0;
- int32 modifiers = 0;
-
- if (message->FindInt32("be:old_modifiers", &old_modifiers) != B_OK) {
- return;
- }
-
- if (message->FindInt32("modifiers", &modifiers) != B_OK) {
- return;
- }
-
- int32 key = old_modifiers ^ modifiers;
-
- Ref<InputEventWithModifiers> event;
- event.instance();
- GetKeyModifierState(event, modifiers);
-
- event->set_shift(key & B_SHIFT_KEY);
- event->set_alt(key & B_OPTION_KEY);
- event->set_control(key & B_CONTROL_KEY);
- event->set_command(key & B_COMMAND_KEY);
-
- input->parse_input_event(event);
-}
-
-void HaikuDirectWindow::HandleWindowResized(BMessage *message) {
- int32 width = 0;
- int32 height = 0;
-
- if ((message->FindInt32("width", &width) != B_OK) || (message->FindInt32("height", &height) != B_OK)) {
- return;
- }
-
- current_video_mode->width = width;
- current_video_mode->height = height;
-}
-
-inline void HaikuDirectWindow::GetKeyModifierState(Ref<InputEventWithModifiers> event, uint32 p_state) {
- last_key_modifier_state = p_state;
-
- event->set_shift(p_state & B_SHIFT_KEY);
- event->set_control(p_state & B_CONTROL_KEY);
- event->set_alt(p_state & B_OPTION_KEY);
- event->set_metakey(p_state & B_COMMAND_KEY);
-
- return state;
-}
-
-inline int HaikuDirectWindow::GetMouseButtonState(uint32 p_state) {
- int state = 0;
-
- if (p_state & B_PRIMARY_MOUSE_BUTTON) {
- state |= 1 << 0;
- }
-
- if (p_state & B_SECONDARY_MOUSE_BUTTON) {
- state |= 1 << 1;
- }
-
- if (p_state & B_TERTIARY_MOUSE_BUTTON) {
- state |= 1 << 2;
- }
-
- last_button_mask = state;
-
- return state;
-}
diff --git a/platform/haiku/haiku_direct_window.h b/platform/haiku/haiku_direct_window.h
deleted file mode 100644
index 4817abbb7a..0000000000
--- a/platform/haiku/haiku_direct_window.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*************************************************************************/
-/* haiku_direct_window.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef HAIKU_DIRECT_WINDOW_H
-#define HAIKU_DIRECT_WINDOW_H
-
-#include <kernel/image.h> // needed for image_id
-
-#include <DirectWindow.h>
-
-#include "core/input/input.h"
-#include "core/os/os.h"
-
-#include "haiku_gl_view.h"
-
-#define REDRAW_MSG 'rdrw'
-#define LOCKGL_MSG 'glck'
-#define UNLOCKGL_MSG 'ulck'
-
-class HaikuDirectWindow : public BDirectWindow {
-private:
- Point2i last_mouse_position;
- bool last_mouse_pos_valid;
- uint32 last_buttons_state;
- uint32 last_key_modifier_state;
- int last_button_mask;
- OS::VideoMode *current_video_mode;
-
- MainLoop *main_loop;
- InputDefault *input;
- HaikuGLView *view;
- BMessageRunner *update_runner;
-
- void HandleMouseButton(BMessage *message);
- void HandleMouseMoved(BMessage *message);
- void HandleMouseWheelChanged(BMessage *message);
- void HandleWindowResized(BMessage *message);
- void HandleKeyboardEvent(BMessage *message);
- void HandleKeyboardModifierEvent(BMessage *message);
- inline void GetKeyModifierState(Ref<InputEventWithModifiers> event, uint32 p_state);
- inline int GetMouseButtonState(uint32 p_state);
-
-public:
- HaikuDirectWindow(BRect p_frame);
- ~HaikuDirectWindow();
-
- void SetHaikuGLView(HaikuGLView *p_view);
- void StartMessageRunner();
- void StopMessageRunner();
- void SetInput(InputDefault *p_input);
- void SetMainLoop(MainLoop *p_main_loop);
- inline void SetVideoMode(OS::VideoMode *video_mode) { current_video_mode = video_mode; };
- virtual bool QuitRequested();
- virtual void DirectConnected(direct_buffer_info *info);
- virtual void MessageReceived(BMessage *message);
- virtual void DispatchMessage(BMessage *message, BHandler *handler);
-
- inline Point2i GetLastMousePosition() { return last_mouse_position; };
- inline int GetLastButtonMask() { return last_button_mask; };
-};
-
-#endif
diff --git a/platform/haiku/haiku_gl_view.cpp b/platform/haiku/haiku_gl_view.cpp
deleted file mode 100644
index 970a1276fd..0000000000
--- a/platform/haiku/haiku_gl_view.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*************************************************************************/
-/* haiku_gl_view.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "haiku_gl_view.h"
-#include "main/main.h"
-
-HaikuGLView::HaikuGLView(BRect frame, uint32 type) :
- BGLView(frame, "GodotGLView", B_FOLLOW_ALL_SIDES, 0, type) {
-}
-
-void HaikuGLView::AttachedToWindow(void) {
- LockGL();
- BGLView::AttachedToWindow();
- UnlockGL();
- MakeFocus();
-}
-
-void HaikuGLView::Draw(BRect updateRect) {
- Main::force_redraw();
-}
diff --git a/platform/haiku/haiku_gl_view.h b/platform/haiku/haiku_gl_view.h
deleted file mode 100644
index 59e02d2367..0000000000
--- a/platform/haiku/haiku_gl_view.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*************************************************************************/
-/* haiku_gl_view.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef HAIKU_GL_VIEW_H
-#define HAIKU_GL_VIEW_H
-
-#include <kernel/image.h> // needed for image_id
-
-#include <GLView.h>
-
-class HaikuGLView : public BGLView {
-public:
- HaikuGLView(BRect frame, uint32 type);
- virtual void AttachedToWindow(void);
- virtual void Draw(BRect updateRect);
-};
-
-#endif
diff --git a/platform/haiku/key_mapping_haiku.cpp b/platform/haiku/key_mapping_haiku.cpp
deleted file mode 100644
index 692a1e5a78..0000000000
--- a/platform/haiku/key_mapping_haiku.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/*************************************************************************/
-/* key_mapping_haiku.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include <InterfaceDefs.h>
-
-#include "core/os/keyboard.h"
-#include "key_mapping_haiku.h"
-
-struct _HaikuTranslatePair {
- unsigned int keysym;
- int32 keycode;
-};
-
-static _HaikuTranslatePair _mod_to_keycode[] = {
- { KEY_SHIFT, B_SHIFT_KEY },
- { KEY_ALT, B_COMMAND_KEY },
- { KEY_CONTROL, B_CONTROL_KEY },
- { KEY_CAPSLOCK, B_CAPS_LOCK },
- { KEY_SCROLLLOCK, B_SCROLL_LOCK },
- { KEY_NUMLOCK, B_NUM_LOCK },
- { KEY_SUPER_L, B_OPTION_KEY },
- { KEY_MENU, B_MENU_KEY },
- { KEY_SHIFT, B_LEFT_SHIFT_KEY },
- { KEY_SHIFT, B_RIGHT_SHIFT_KEY },
- { KEY_ALT, B_LEFT_COMMAND_KEY },
- { KEY_ALT, B_RIGHT_COMMAND_KEY },
- { KEY_CONTROL, B_LEFT_CONTROL_KEY },
- { KEY_CONTROL, B_RIGHT_CONTROL_KEY },
- { KEY_SUPER_L, B_LEFT_OPTION_KEY },
- { KEY_SUPER_R, B_RIGHT_OPTION_KEY },
- { KEY_UNKNOWN, 0 }
-};
-
-static _HaikuTranslatePair _fn_to_keycode[] = {
- { KEY_F1, B_F1_KEY },
- { KEY_F2, B_F2_KEY },
- { KEY_F3, B_F3_KEY },
- { KEY_F4, B_F4_KEY },
- { KEY_F5, B_F5_KEY },
- { KEY_F6, B_F6_KEY },
- { KEY_F7, B_F7_KEY },
- { KEY_F8, B_F8_KEY },
- { KEY_F9, B_F9_KEY },
- { KEY_F10, B_F10_KEY },
- { KEY_F11, B_F11_KEY },
- { KEY_F12, B_F12_KEY },
- //{ KEY_F13, ? },
- //{ KEY_F14, ? },
- //{ KEY_F15, ? },
- //{ KEY_F16, ? },
- { KEY_PRINT, B_PRINT_KEY },
- { KEY_SCROLLLOCK, B_SCROLL_KEY },
- { KEY_PAUSE, B_PAUSE_KEY },
- { KEY_UNKNOWN, 0 }
-};
-
-static _HaikuTranslatePair _hb_to_keycode[] = {
- { KEY_BACKSPACE, B_BACKSPACE },
- { KEY_TAB, B_TAB },
- { KEY_ENTER, B_RETURN },
- { KEY_CAPSLOCK, B_CAPS_LOCK },
- { KEY_ESCAPE, B_ESCAPE },
- { KEY_SPACE, B_SPACE },
- { KEY_PAGEUP, B_PAGE_UP },
- { KEY_PAGEDOWN, B_PAGE_DOWN },
- { KEY_END, B_END },
- { KEY_HOME, B_HOME },
- { KEY_LEFT, B_LEFT_ARROW },
- { KEY_UP, B_UP_ARROW },
- { KEY_RIGHT, B_RIGHT_ARROW },
- { KEY_DOWN, B_DOWN_ARROW },
- { KEY_PRINT, B_PRINT_KEY },
- { KEY_INSERT, B_INSERT },
- { KEY_DELETE, B_DELETE },
- // { KEY_HELP, ??? },
-
- { KEY_0, (0x30) },
- { KEY_1, (0x31) },
- { KEY_2, (0x32) },
- { KEY_3, (0x33) },
- { KEY_4, (0x34) },
- { KEY_5, (0x35) },
- { KEY_6, (0x36) },
- { KEY_7, (0x37) },
- { KEY_8, (0x38) },
- { KEY_9, (0x39) },
- { KEY_A, (0x61) },
- { KEY_B, (0x62) },
- { KEY_C, (0x63) },
- { KEY_D, (0x64) },
- { KEY_E, (0x65) },
- { KEY_F, (0x66) },
- { KEY_G, (0x67) },
- { KEY_H, (0x68) },
- { KEY_I, (0x69) },
- { KEY_J, (0x6A) },
- { KEY_K, (0x6B) },
- { KEY_L, (0x6C) },
- { KEY_M, (0x6D) },
- { KEY_N, (0x6E) },
- { KEY_O, (0x6F) },
- { KEY_P, (0x70) },
- { KEY_Q, (0x71) },
- { KEY_R, (0x72) },
- { KEY_S, (0x73) },
- { KEY_T, (0x74) },
- { KEY_U, (0x75) },
- { KEY_V, (0x76) },
- { KEY_W, (0x77) },
- { KEY_X, (0x78) },
- { KEY_Y, (0x79) },
- { KEY_Z, (0x7A) },
-
- /*
-{ KEY_PLAY, VK_PLAY},// (0xFA)
-{ KEY_STANDBY,VK_SLEEP },//(0x5F)
-{ KEY_BACK,VK_BROWSER_BACK},// (0xA6)
-{ KEY_FORWARD,VK_BROWSER_FORWARD},// (0xA7)
-{ KEY_REFRESH,VK_BROWSER_REFRESH},// (0xA8)
-{ KEY_STOP,VK_BROWSER_STOP},// (0xA9)
-{ KEY_SEARCH,VK_BROWSER_SEARCH},// (0xAA)
-{ KEY_FAVORITES, VK_BROWSER_FAVORITES},// (0xAB)
-{ KEY_HOMEPAGE,VK_BROWSER_HOME},// (0xAC)
-{ KEY_VOLUMEMUTE,VK_VOLUME_MUTE},// (0xAD)
-{ KEY_VOLUMEDOWN,VK_VOLUME_DOWN},// (0xAE)
-{ KEY_VOLUMEUP,VK_VOLUME_UP},// (0xAF)
-{ KEY_MEDIANEXT,VK_MEDIA_NEXT_TRACK},// (0xB0)
-{ KEY_MEDIAPREVIOUS,VK_MEDIA_PREV_TRACK},// (0xB1)
-{ KEY_MEDIASTOP,VK_MEDIA_STOP},// (0xB2)
-{ KEY_LAUNCHMAIL, VK_LAUNCH_MAIL},// (0xB4)
-{ KEY_LAUNCHMEDIA,VK_LAUNCH_MEDIA_SELECT},// (0xB5)
-{ KEY_LAUNCH0,VK_LAUNCH_APP1},// (0xB6)
-{ KEY_LAUNCH1,VK_LAUNCH_APP2},// (0xB7)
-*/
-
- { KEY_SEMICOLON, 0x3B },
- { KEY_EQUAL, 0x3D },
- { KEY_COLON, 0x2C },
- { KEY_MINUS, 0x2D },
- { KEY_PERIOD, 0x2E },
- { KEY_SLASH, 0x2F },
- { KEY_KP_MULTIPLY, 0x2A },
- { KEY_KP_ADD, 0x2B },
-
- { KEY_QUOTELEFT, 0x60 },
- { KEY_BRACKETLEFT, 0x5B },
- { KEY_BACKSLASH, 0x5C },
- { KEY_BRACKETRIGHT, 0x5D },
- { KEY_APOSTROPHE, 0x27 },
-
- { KEY_UNKNOWN, 0 }
-};
-
-unsigned int KeyMappingHaiku::get_keysym(int32 raw_char, int32 key) {
- if (raw_char == B_INSERT && key == 0x64) {
- return KEY_KP_0;
- }
- if (raw_char == B_END && key == 0x58) {
- return KEY_KP_1;
- }
- if (raw_char == B_DOWN_ARROW && key == 0x59) {
- return KEY_KP_2;
- }
- if (raw_char == B_PAGE_DOWN && key == 0x5A) {
- return KEY_KP_3;
- }
- if (raw_char == B_LEFT_ARROW && key == 0x48) {
- return KEY_KP_4;
- }
- if (raw_char == 0x35 && key == 0x49) {
- return KEY_KP_5;
- }
- if (raw_char == B_RIGHT_ARROW && key == 0x4A) {
- return KEY_KP_6;
- }
- if (raw_char == B_HOME && key == 0x37) {
- return KEY_KP_7;
- }
- if (raw_char == B_UP_ARROW && key == 0x38) {
- return KEY_KP_8;
- }
- if (raw_char == B_PAGE_UP && key == 0x39) {
- return KEY_KP_9;
- }
- if (raw_char == 0x2F && key == 0x23) {
- return KEY_KP_DIVIDE;
- }
- if (raw_char == 0x2D && key == 0x25) {
- return KEY_KP_SUBTRACT;
- }
- if (raw_char == B_DELETE && key == 0x65) {
- return KEY_KP_PERIOD;
- }
-
- if (raw_char == 0x10) {
- for (int i = 0; _fn_to_keycode[i].keysym != KEY_UNKNOWN; i++) {
- if (_fn_to_keycode[i].keycode == key) {
- return _fn_to_keycode[i].keysym;
- }
- }
-
- return KEY_UNKNOWN;
- }
-
- for (int i = 0; _hb_to_keycode[i].keysym != KEY_UNKNOWN; i++) {
- if (_hb_to_keycode[i].keycode == raw_char) {
- return _hb_to_keycode[i].keysym;
- }
- }
-
- return KEY_UNKNOWN;
-}
-
-unsigned int KeyMappingHaiku::get_modifier_keysym(int32 key) {
- for (int i = 0; _mod_to_keycode[i].keysym != KEY_UNKNOWN; i++) {
- if ((_mod_to_keycode[i].keycode & key) != 0) {
- return _mod_to_keycode[i].keysym;
- }
- }
-
- return KEY_UNKNOWN;
-}
diff --git a/platform/haiku/key_mapping_haiku.h b/platform/haiku/key_mapping_haiku.h
deleted file mode 100644
index e735108e44..0000000000
--- a/platform/haiku/key_mapping_haiku.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*************************************************************************/
-/* key_mapping_haiku.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef KEY_MAPPING_HAIKU_H
-#define KEY_MAPPING_HAIKU_H
-
-class KeyMappingHaiku {
- KeyMappingHaiku() {}
-
-public:
- static unsigned int get_keysym(int32 raw_char, int32 key);
- static unsigned int get_modifier_keysym(int32 key);
-};
-
-#endif
diff --git a/platform/haiku/logo.png b/platform/haiku/logo.png
deleted file mode 100644
index a2d8e242a6..0000000000
--- a/platform/haiku/logo.png
+++ /dev/null
Binary files differ
diff --git a/platform/haiku/os_haiku.cpp b/platform/haiku/os_haiku.cpp
deleted file mode 100644
index 7a2591784f..0000000000
--- a/platform/haiku/os_haiku.cpp
+++ /dev/null
@@ -1,358 +0,0 @@
-/*************************************************************************/
-/* os_haiku.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "os_haiku.h"
-
-#include "drivers/gles2/rasterizer_gles2.h"
-#include "main/main.h"
-#include "servers/physics_3d/physics_server_3d_sw.h"
-#include "servers/rendering/rendering_server_raster.h"
-#include "servers/rendering/rendering_server_wrap_mt.h"
-
-#include <Screen.h>
-
-OS_Haiku::OS_Haiku() {
-#ifdef MEDIA_KIT_ENABLED
- AudioDriverManager::add_driver(&driver_media_kit);
-#endif
-};
-
-void OS_Haiku::run() {
- if (!main_loop) {
- return;
- }
-
- main_loop->init();
- context_gl->release_current();
-
- // TODO: clean up
- BMessenger *bms = new BMessenger(window);
- BMessage *msg = new BMessage();
- bms->SendMessage(LOCKGL_MSG, msg);
-
- window->StartMessageRunner();
- app->Run();
- window->StopMessageRunner();
-
- delete app;
-
- delete bms;
- delete msg;
- main_loop->finish();
-}
-
-String OS_Haiku::get_name() const {
- return "Haiku";
-}
-
-int OS_Haiku::get_video_driver_count() const {
- return 1;
-}
-
-const char *OS_Haiku::get_video_driver_name(int p_driver) const {
- return "GLES2";
-}
-
-int OS_Haiku::get_current_video_driver() const {
- return video_driver_index;
-}
-
-Error OS_Haiku::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) {
- main_loop = nullptr;
- current_video_mode = p_desired;
-
- app = new HaikuApplication();
-
- BRect frame;
- frame.Set(50, 50, 50 + current_video_mode.width - 1, 50 + current_video_mode.height - 1);
-
- window = new HaikuDirectWindow(frame);
- window->SetVideoMode(&current_video_mode);
-
- if (current_video_mode.fullscreen) {
- window->SetFullScreen(true);
- }
-
- if (!current_video_mode.resizable) {
- uint32 flags = window->Flags();
- flags |= B_NOT_RESIZABLE;
- window->SetFlags(flags);
- }
-
-#if defined(OPENGL_ENABLED)
- context_gl = memnew(ContextGL_Haiku(window));
- context_gl->initialize();
- context_gl->make_current();
- context_gl->set_use_vsync(current_video_mode.use_vsync);
- // FIXME: That's not how the rasterizer setup should happen.
- RasterizerGLES2::register_config();
- RasterizerGLES2::make_current();
-#endif
-
- rendering_server = memnew(RenderingServerRaster);
- // FIXME: Reimplement threaded rendering
- if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
- rendering_server = memnew(RenderingServerWrapMT(rendering_server, false));
- }
-
- ERR_FAIL_COND_V(!rendering_server, ERR_UNAVAILABLE);
-
- video_driver_index = p_video_driver;
-
- input = memnew(InputDefault);
- window->SetInput(input);
-
- window->Show();
- rendering_server->init();
-
- AudioDriverManager::initialize(p_audio_driver);
-
- return OK;
-}
-
-void OS_Haiku::finalize() {
- if (main_loop) {
- memdelete(main_loop);
- }
-
- main_loop = nullptr;
-
- rendering_server->finish();
- memdelete(rendering_server);
-
- memdelete(input);
-
-#if defined(OPENGL_ENABLED)
- memdelete(context_gl);
-#endif
-}
-
-void OS_Haiku::set_main_loop(MainLoop *p_main_loop) {
- main_loop = p_main_loop;
- input->set_main_loop(p_main_loop);
- window->SetMainLoop(p_main_loop);
-}
-
-MainLoop *OS_Haiku::get_main_loop() const {
- return main_loop;
-}
-
-void OS_Haiku::delete_main_loop() {
- if (main_loop) {
- memdelete(main_loop);
- }
-
- main_loop = nullptr;
- window->SetMainLoop(nullptr);
-}
-
-void OS_Haiku::release_rendering_thread() {
- context_gl->release_current();
-}
-
-void OS_Haiku::make_rendering_thread() {
- context_gl->make_current();
-}
-
-bool OS_Haiku::can_draw() const {
- // TODO: implement
- return true;
-}
-
-void OS_Haiku::swap_buffers() {
- context_gl->swap_buffers();
-}
-
-Point2 OS_Haiku::get_mouse_position() const {
- return window->GetLastMousePosition();
-}
-
-int OS_Haiku::get_mouse_button_state() const {
- return window->GetLastButtonMask();
-}
-
-void OS_Haiku::set_cursor_shape(CursorShape p_shape) {
- //ERR_PRINT("set_cursor_shape() NOT IMPLEMENTED");
-}
-
-OS::CursorShape OS_Haiku::get_cursor_shape() const {
- // TODO: implement get_cursor_shape
-}
-
-void OS_Haiku::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) {
- // TODO
-}
-
-int OS_Haiku::get_screen_count() const {
- // TODO: implement get_screen_count()
- return 1;
-}
-
-int OS_Haiku::get_current_screen() const {
- // TODO: implement get_current_screen()
- return 0;
-}
-
-void OS_Haiku::set_current_screen(int p_screen) {
- // TODO: implement set_current_screen()
-}
-
-Point2 OS_Haiku::get_screen_position(int p_screen) const {
- // TODO: make this work with the p_screen parameter
- BScreen *screen = new BScreen(window);
- BRect frame = screen->Frame();
- delete screen;
- return Point2i(frame.left, frame.top);
-}
-
-Size2 OS_Haiku::get_screen_size(int p_screen) const {
- // TODO: make this work with the p_screen parameter
- BScreen *screen = new BScreen(window);
- BRect frame = screen->Frame();
- delete screen;
- return Size2i(frame.IntegerWidth() + 1, frame.IntegerHeight() + 1);
-}
-
-void OS_Haiku::set_window_title(const String &p_title) {
- window->SetTitle(p_title.utf8().get_data());
-}
-
-Size2 OS_Haiku::get_window_size() const {
- BSize size = window->Size();
- return Size2i(size.IntegerWidth() + 1, size.IntegerHeight() + 1);
-}
-
-void OS_Haiku::set_window_size(const Size2 p_size) {
- // TODO: why does it stop redrawing after this is called?
- window->ResizeTo(p_size.x, p_size.y);
-}
-
-Point2 OS_Haiku::get_window_position() const {
- BPoint point(0, 0);
- window->ConvertToScreen(&point);
- return Point2i(point.x, point.y);
-}
-
-void OS_Haiku::set_window_position(const Point2 &p_position) {
- window->MoveTo(p_position.x, p_position.y);
-}
-
-void OS_Haiku::set_window_fullscreen(bool p_enabled) {
- window->SetFullScreen(p_enabled);
- current_video_mode.fullscreen = p_enabled;
- rendering_server->init();
-}
-
-bool OS_Haiku::is_window_fullscreen() const {
- return current_video_mode.fullscreen;
-}
-
-void OS_Haiku::set_window_resizable(bool p_enabled) {
- uint32 flags = window->Flags();
-
- if (p_enabled) {
- flags &= ~(B_NOT_RESIZABLE);
- } else {
- flags |= B_NOT_RESIZABLE;
- }
-
- window->SetFlags(flags);
- current_video_mode.resizable = p_enabled;
-}
-
-bool OS_Haiku::is_window_resizable() const {
- return current_video_mode.resizable;
-}
-
-void OS_Haiku::set_window_minimized(bool p_enabled) {
- window->Minimize(p_enabled);
-}
-
-bool OS_Haiku::is_window_minimized() const {
- return window->IsMinimized();
-}
-
-void OS_Haiku::set_window_maximized(bool p_enabled) {
- window->Minimize(!p_enabled);
-}
-
-bool OS_Haiku::is_window_maximized() const {
- return !window->IsMinimized();
-}
-
-void OS_Haiku::set_video_mode(const VideoMode &p_video_mode, int p_screen) {
- ERR_PRINT("set_video_mode() NOT IMPLEMENTED");
-}
-
-OS::VideoMode OS_Haiku::get_video_mode(int p_screen) const {
- return current_video_mode;
-}
-
-void OS_Haiku::get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen) const {
- ERR_PRINT("get_fullscreen_mode_list() NOT IMPLEMENTED");
-}
-
-String OS_Haiku::get_executable_path() const {
- return OS::get_executable_path();
-}
-
-bool OS_Haiku::_check_internal_feature_support(const String &p_feature) {
- return p_feature == "pc";
-}
-
-String OS_Haiku::get_config_path() const {
- if (has_environment("XDG_CONFIG_HOME")) {
- return get_environment("XDG_CONFIG_HOME");
- } else if (has_environment("HOME")) {
- return get_environment("HOME").plus_file("config/settings");
- } else {
- return ".";
- }
-}
-
-String OS_Haiku::get_data_path() const {
- if (has_environment("XDG_DATA_HOME")) {
- return get_environment("XDG_DATA_HOME");
- } else if (has_environment("HOME")) {
- return get_environment("HOME").plus_file("config/data");
- } else {
- return get_config_path();
- }
-}
-
-String OS_Haiku::get_cache_path() const {
- if (has_environment("XDG_CACHE_HOME")) {
- return get_environment("XDG_CACHE_HOME");
- } else if (has_environment("HOME")) {
- return get_environment("HOME").plus_file("config/cache");
- } else {
- return get_config_path();
- }
-}
diff --git a/platform/haiku/os_haiku.h b/platform/haiku/os_haiku.h
deleted file mode 100644
index d3ef9400d4..0000000000
--- a/platform/haiku/os_haiku.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*************************************************************************/
-/* os_haiku.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef OS_HAIKU_H
-#define OS_HAIKU_H
-
-#include "audio_driver_media_kit.h"
-#include "context_gl_haiku.h"
-#include "core/input/input.h"
-#include "drivers/unix/os_unix.h"
-#include "haiku_application.h"
-#include "haiku_direct_window.h"
-#include "servers/audio_server.h"
-#include "servers/rendering_server.h"
-
-class OS_Haiku : public OS_Unix {
-private:
- HaikuApplication *app;
- HaikuDirectWindow *window;
- MainLoop *main_loop;
- InputDefault *input;
- RenderingServer *rendering_server;
- VideoMode current_video_mode;
- int video_driver_index;
-
-#ifdef MEDIA_KIT_ENABLED
- AudioDriverMediaKit driver_media_kit;
-#endif
-
-#if defined(OPENGL_ENABLED)
- ContextGL_Haiku *context_gl;
-#endif
-
- virtual void delete_main_loop();
-
-protected:
- virtual int get_video_driver_count() const;
- virtual const char *get_video_driver_name(int p_driver) const;
- virtual int get_current_video_driver() const;
-
- virtual Error initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver);
- virtual void finalize();
-
- virtual void set_main_loop(MainLoop *p_main_loop);
-
-public:
- OS_Haiku();
- void run();
-
- virtual String get_name() const;
-
- virtual MainLoop *get_main_loop() const;
-
- virtual bool can_draw() const;
- virtual void release_rendering_thread();
- virtual void make_rendering_thread();
- virtual void swap_buffers();
-
- virtual Point2 get_mouse_position() const;
- virtual int get_mouse_button_state() const;
- virtual void set_cursor_shape(CursorShape p_shape);
- virtual CursorShape get_cursor_shape() const;
- virtual void set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot);
-
- virtual int get_screen_count() const;
- virtual int get_current_screen() const;
- virtual void set_current_screen(int p_screen);
- virtual Point2 get_screen_position(int p_screen = -1) const;
- virtual Size2 get_screen_size(int p_screen = -1) const;
- virtual void set_window_title(const String &p_title);
- virtual Size2 get_window_size() const;
- virtual void set_window_size(const Size2 p_size);
- virtual Point2 get_window_position() const;
- virtual void set_window_position(const Point2 &p_position);
- virtual void set_window_fullscreen(bool p_enabled);
- virtual bool is_window_fullscreen() const;
- virtual void set_window_resizable(bool p_enabled);
- virtual bool is_window_resizable() const;
- virtual void set_window_minimized(bool p_enabled);
- virtual bool is_window_minimized() const;
- virtual void set_window_maximized(bool p_enabled);
- virtual bool is_window_maximized() const;
-
- virtual void set_video_mode(const VideoMode &p_video_mode, int p_screen = 0);
- virtual VideoMode get_video_mode(int p_screen = 0) const;
- virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen = 0) const;
- virtual String get_executable_path() const;
-
- virtual bool _check_internal_feature_support(const String &p_feature);
-
- virtual String get_config_path() const;
- virtual String get_data_path() const;
- virtual String get_cache_path() const;
-};
-
-#endif
diff --git a/platform/haiku/platform_config.h b/platform/haiku/platform_config.h
deleted file mode 100644
index f2d5418adf..0000000000
--- a/platform/haiku/platform_config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*************************************************************************/
-/* platform_config.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include <alloca.h>
-
-// for ifaddrs.h needed in drivers/unix/ip_unix.cpp
-#define _BSD_SOURCE 1
-
-#define GLES2_INCLUDE_H "thirdparty/glad/glad/glad.h"
diff --git a/scene/3d/camera_3d.cpp b/scene/3d/camera_3d.cpp
index 8dc5cd4aba..7ffca4bd9e 100644
--- a/scene/3d/camera_3d.cpp
+++ b/scene/3d/camera_3d.cpp
@@ -754,9 +754,9 @@ void ClippedCamera3D::_notification(int p_what) {
xf.origin = ray_from;
xf.orthonormalize();
- float csafe, cunsafe;
- if (dspace->cast_motion(pyramid_shape, xf, cam_pos - ray_from, margin, csafe, cunsafe, exclude, collision_mask, clip_to_bodies, clip_to_areas)) {
- clip_offset = cam_pos.distance_to(ray_from + (cam_pos - ray_from) * csafe);
+ float closest_safe = 1.0f, closest_unsafe = 1.0f;
+ if (dspace->cast_motion(pyramid_shape, xf, cam_pos - ray_from, margin, closest_safe, closest_unsafe, exclude, collision_mask, clip_to_bodies, clip_to_areas)) {
+ clip_offset = cam_pos.distance_to(ray_from + (cam_pos - ray_from) * closest_safe);
}
_update_camera();
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index e050b3f174..c7fc8dbe43 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -366,26 +366,9 @@ void TextEdit::_update_scrollbars() {
total_width += cache.minimap_width;
}
- bool use_hscroll = true;
- bool use_vscroll = true;
-
- // Thanks yessopie for this clever bit of logic.
- if (total_rows <= visible_rows && total_width <= visible_width) {
- use_hscroll = false;
- use_vscroll = false;
- } else {
- if (total_rows > visible_rows && total_width <= visible_width) {
- use_hscroll = false;
- }
-
- if (total_rows <= visible_rows && total_width > visible_width) {
- use_vscroll = false;
- }
- }
-
updating_scrolls = true;
- if (use_vscroll) {
+ if (total_rows > visible_rows) {
v_scroll->show();
v_scroll->set_max(total_rows + get_visible_rows_offset());
v_scroll->set_page(visible_rows + get_visible_rows_offset());
@@ -403,7 +386,7 @@ void TextEdit::_update_scrollbars() {
v_scroll->hide();
}
- if (use_hscroll && !is_wrap_enabled()) {
+ if (total_width > visible_width && !is_wrap_enabled()) {
h_scroll->show();
h_scroll->set_max(total_width);
h_scroll->set_page(visible_width);
@@ -2274,14 +2257,14 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) {
if (mb->get_button_index() == BUTTON_WHEEL_UP && !mb->get_command()) {
if (mb->get_shift()) {
h_scroll->set_value(h_scroll->get_value() - (100 * mb->get_factor()));
- } else {
+ } else if (v_scroll->is_visible()) {
_scroll_up(3 * mb->get_factor());
}
}
if (mb->get_button_index() == BUTTON_WHEEL_DOWN && !mb->get_command()) {
if (mb->get_shift()) {
h_scroll->set_value(h_scroll->get_value() + (100 * mb->get_factor()));
- } else {
+ } else if (v_scroll->is_visible()) {
_scroll_down(3 * mb->get_factor());
}
}
diff --git a/servers/physics_server_3d.cpp b/servers/physics_server_3d.cpp
index 2dd8ea3edb..9668358710 100644
--- a/servers/physics_server_3d.cpp
+++ b/servers/physics_server_3d.cpp
@@ -295,7 +295,7 @@ Array PhysicsDirectSpaceState3D::_intersect_shape(const Ref<PhysicsShapeQueryPar
Array PhysicsDirectSpaceState3D::_cast_motion(const Ref<PhysicsShapeQueryParameters3D> &p_shape_query, const Vector3 &p_motion) {
ERR_FAIL_COND_V(!p_shape_query.is_valid(), Array());
- float closest_safe, closest_unsafe;
+ float closest_safe = 1.0f, closest_unsafe = 1.0f;
bool res = cast_motion(p_shape_query->shape, p_shape_query->transform, p_motion, p_shape_query->margin, closest_safe, closest_unsafe, p_shape_query->exclude, p_shape_query->collision_mask, p_shape_query->collide_with_bodies, p_shape_query->collide_with_areas);
if (!res) {
return Array();