summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SConstruct11
-rw-r--r--core/array.cpp24
-rw-r--r--core/array.h3
-rw-r--r--core/variant_call.cpp6
-rw-r--r--core/vector.h10
-rw-r--r--doc/base/classes.xml15
-rw-r--r--platform/osx/detect.py7
-rw-r--r--platform/windows/detect.py9
-rw-r--r--platform/windows/os_windows.cpp8
-rw-r--r--platform/x11/detect.py7
-rw-r--r--scene/gui/label.cpp8
-rw-r--r--scene/gui/line_edit.cpp6
-rw-r--r--scene/main/viewport.cpp2
-rw-r--r--tools/editor/asset_library_editor_plugin.cpp2
-rw-r--r--tools/editor/dependency_editor.cpp5
-rw-r--r--tools/editor/editor_help.cpp1
-rw-r--r--tools/editor/editor_node.cpp8
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp1
-rw-r--r--tools/editor/plugins/shader_editor_plugin.cpp3
-rw-r--r--tools/editor/project_manager.cpp12
-rw-r--r--tools/editor/scenes_dock.cpp1
-rw-r--r--tools/translations/ko.po137
22 files changed, 160 insertions, 126 deletions
diff --git a/SConstruct b/SConstruct
index 0f9b046e2b..038d42f946 100644
--- a/SConstruct
+++ b/SConstruct
@@ -123,7 +123,7 @@ opts.Add('minizip','Build Minizip Archive Support: (yes/no)','yes')
opts.Add('squish','Squish BC Texture Compression in editor (yes/no)','yes')
opts.Add('theora','Theora Video (yes/no)','yes')
opts.Add('theoralib','Theora Video (yes/no)','no')
-opts.Add('freetype','Freetype support in editor','yes')
+opts.Add('freetype','Freetype support in editor','builtin')
opts.Add('speex','Speex Audio (yes/no)','yes')
opts.Add('xml','XML Save/Load support (yes/no)','yes')
opts.Add('png','PNG Image loader support (yes/no)','yes')
@@ -190,6 +190,7 @@ elif env_base['p'] != "":
env_base["platform"]=selected_platform
+
if selected_platform in platform_list:
sys.path.append("./platform/"+selected_platform)
@@ -246,6 +247,14 @@ if selected_platform in platform_list:
#must happen after the flags, so when flags are used by configure, stuff happens (ie, ssl on x11)
detect.configure(env)
+
+ if (env["freetype"]!="no"):
+ env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
+ if (env["freetype"]=="builtin"):
+ env.Append(CPPPATH=['#drivers/freetype'])
+ env.Append(CPPPATH=['#drivers/freetype/freetype/include'])
+
+
#env['platform_libsuffix'] = env['LIBSUFFIX']
suffix="."+selected_platform
diff --git a/core/array.cpp b/core/array.cpp
index 1d283a14aa..bb8e527304 100644
--- a/core/array.cpp
+++ b/core/array.cpp
@@ -150,17 +150,26 @@ void Array::erase(const Variant& p_value) {
_p->array.erase(p_value);
}
-int Array::find(const Variant& p_value) const {
+int Array::find(const Variant& p_value, int p_from) const {
- return _p->array.find(p_value);
+ return _p->array.find(p_value, p_from);
}
-int Array::find_last(const Variant& p_value) const {
+int Array::rfind(const Variant& p_value, int p_from) const {
- if(_p->array.size() == 0)
+ if (_p->array.size() == 0)
return -1;
- for (int i=_p->array.size()-1; i>=0; i--) {
+ if (p_from < 0) {
+ // Relative offset from the end
+ p_from = _p->array.size() + p_from;
+ }
+ if (p_from < 0 || p_from >= _p->array.size()) {
+ // Limit to array boundaries
+ p_from = _p->array.size() - 1;
+ }
+
+ for (int i=p_from; i>=0; i--) {
if(_p->array[i] == p_value){
return i;
@@ -170,6 +179,11 @@ int Array::find_last(const Variant& p_value) const {
return -1;
}
+int Array::find_last(const Variant& p_value) const {
+
+ return rfind(p_value);
+}
+
int Array::count(const Variant& p_value) const {
if(_p->array.size() == 0)
diff --git a/core/array.h b/core/array.h
index 9472a6dd21..096660653e 100644
--- a/core/array.h
+++ b/core/array.h
@@ -71,7 +71,8 @@ public:
void sort_custom(Object *p_obj,const StringName& p_function);
void invert();
- int find(const Variant& p_value) const;
+ int find(const Variant& p_value, int p_from=0) const;
+ int rfind(const Variant& p_value, int p_from=-1) const;
int find_last(const Variant& p_value) const;
int count(const Variant& p_value) const;
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index d427a80541..cc2d15b88c 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -464,7 +464,8 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(Array,resize);
VCALL_LOCALMEM2(Array,insert);
VCALL_LOCALMEM1(Array,remove);
- VCALL_LOCALMEM1R(Array,find);
+ VCALL_LOCALMEM2R(Array,find);
+ VCALL_LOCALMEM2R(Array,rfind);
VCALL_LOCALMEM1R(Array,find_last);
VCALL_LOCALMEM1R(Array,count);
VCALL_LOCALMEM1(Array,erase);
@@ -1453,7 +1454,8 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC2(ARRAY,NIL,Array,insert,INT,"pos",NIL,"value",varray());
ADDFUNC1(ARRAY,NIL,Array,remove,INT,"pos",varray());
ADDFUNC1(ARRAY,NIL,Array,erase,NIL,"value",varray());
- ADDFUNC1(ARRAY,INT,Array,find,NIL,"value",varray());
+ ADDFUNC2(ARRAY,INT,Array,find,NIL,"what",INT,"from",varray(0));
+ ADDFUNC2(ARRAY,INT,Array,rfind,NIL,"what",INT,"from",varray(-1));
ADDFUNC1(ARRAY,INT,Array,find_last,NIL,"value",varray());
ADDFUNC1(ARRAY,INT,Array,count,NIL,"value",varray());
ADDFUNC0(ARRAY,NIL,Array,pop_back,varray());
diff --git a/core/vector.h b/core/vector.h
index 87248ccf68..cafb4a4aa3 100644
--- a/core/vector.h
+++ b/core/vector.h
@@ -120,7 +120,7 @@ public:
template <class T_val>
- int find(const T_val& p_val) const;
+ int find(const T_val& p_val, int p_from=0) const;
void set(int p_index,T p_elem);
T get(int p_index) const;
@@ -238,13 +238,13 @@ void Vector<T>::_copy_on_write() {
}
template<class T> template<class T_val>
-int Vector<T>::find(const T_val &p_val) const {
+int Vector<T>::find(const T_val &p_val, int p_from) const {
int ret = -1;
- if (size() == 0)
+ if (p_from < 0 || size() == 0)
return ret;
- for (int i=0; i<size(); i++) {
+ for (int i=p_from; i<size(); i++) {
if (operator[](i) == p_val) {
ret = i;
@@ -253,7 +253,7 @@ int Vector<T>::find(const T_val &p_val) const {
};
return ret;
-};
+}
template<class T>
Error Vector<T>::resize(int p_size) {
diff --git a/doc/base/classes.xml b/doc/base/classes.xml
index b74ac1c144..b72f082afa 100644
--- a/doc/base/classes.xml
+++ b/doc/base/classes.xml
@@ -4390,10 +4390,12 @@
<method name="find">
<return type="int">
</return>
- <argument index="0" name="value" type="var">
+ <argument index="0" name="what" type="var">
+ </argument>
+ <argument index="1" name="from" type="int" default="0">
</argument>
<description>
- Searches the array for a value and returns its index or -1 if not found.
+ Searches the array for a value and returns its index or -1 if not found. Optionally, the initial search index can be passed.
</description>
</method>
<method name="find_last">
@@ -4471,6 +4473,15 @@
Resize the array to contain a different number of elements. If the array size is smaller, elements are cleared, if bigger, new elements are Null.
</description>
</method>
+ <method name="rfind">
+ <argument index="0" name="what" type="var">
+ </argument>
+ <argument index="1" name="from" type="int">
+ </argument>
+ <description>
+ Searches the array in reverse order. Optionally, a start search index can be passed. If negative, the start index is considered relative to the end of the array.
+ </description>
+ </method>
<method name="size">
<return type="int">
</return>
diff --git a/platform/osx/detect.py b/platform/osx/detect.py
index d1aa54b71d..1982beb10e 100644
--- a/platform/osx/detect.py
+++ b/platform/osx/detect.py
@@ -30,7 +30,6 @@ def get_flags():
return [
('legacygl', 'yes'),
('builtin_zlib', 'no'),
- ('freetype','builtin'), #use builtin freetype
('glew', 'yes'),
]
@@ -56,12 +55,6 @@ def configure(env):
env.Append(CCFLAGS=['-g3', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
- if (env["freetype"]!="no"):
- env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
- env.Append(CPPPATH=['#drivers/freetype'])
- env.Append(CPPPATH=['#drivers/freetype/freetype/include'])
-
-
if (not os.environ.has_key("OSXCROSS_ROOT")):
#regular native build
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index a6a949a11a..320fb9d269 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -168,7 +168,6 @@ def get_opts():
def get_flags():
return [
- ('freetype','builtin'), #use builtin freetype
('glew','yes'),
('openssl','builtin'), #use builtin openssl
]
@@ -203,10 +202,6 @@ def configure(env):
env.Append(CPPPATH=['#platform/windows/include'])
env.Append(LIBPATH=['#platform/windows/lib'])
- if (env["freetype"]!="no"):
- env.Append(CCFLAGS=['/DFREETYPE_ENABLED'])
- env.Append(CPPPATH=['#drivers/freetype'])
- env.Append(CPPPATH=['#drivers/freetype/freetype/include'])
if (env["target"]=="release"):
@@ -350,10 +345,6 @@ def configure(env):
env.Append(CCFLAGS=['-g', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
- if (env["freetype"]!="no"):
- env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
- env.Append(CPPPATH=['#drivers/freetype'])
- env.Append(CPPPATH=['#drivers/freetype/freetype/include'])
env["CC"]=mingw_prefix+"gcc"
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 9034541f37..630d5715e9 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -1834,6 +1834,11 @@ uint64_t OS_Windows::get_unix_time() const {
};
uint64_t OS_Windows::get_system_time_secs() const {
+
+
+ const uint64_t WINDOWS_TICK = 10000000;
+ const uint64_t SEC_TO_UNIX_EPOCH = 11644473600LL;
+
SYSTEMTIME st;
GetSystemTime(&st);
FILETIME ft;
@@ -1842,7 +1847,8 @@ uint64_t OS_Windows::get_system_time_secs() const {
ret=ft.dwHighDateTime;
ret<<=32;
ret|=ft.dwLowDateTime;
- return ret;
+
+ return (uint64_t)(ret / WINDOWS_TICK - SEC_TO_UNIX_EPOCH);
}
void OS_Windows::delay_usec(uint32_t p_usec) const {
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 2561e09b9a..0362756f7c 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -67,6 +67,8 @@ def get_flags():
('builtin_zlib', 'no'),
('glew', 'yes'),
("openssl", "yes"),
+ ('freetype','yes'), #use system freetype
+
#("theora","no"),
]
@@ -141,11 +143,6 @@ def configure(env):
env.ParseConfig('pkg-config freetype2 --cflags --libs')
- if (env["freetype"]!="no"):
- env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
- if (env["freetype"]=="builtin"):
- env.Append(CPPPATH=['#drivers/freetype'])
- env.Append(CPPPATH=['#drivers/freetype/freetype/include'])
env.Append(CPPFLAGS=['-DOPENGL_ENABLED'])
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index 09c6a77b42..2d4438c48c 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -92,7 +92,9 @@ void Label::_notification(int p_what) {
VisualServer::get_singleton()->canvas_item_set_distance_field_mode(get_canvas_item(),font.is_valid() && font->is_distance_field_hint());
int font_h = font->get_height()+line_spacing;
- int lines_visible = size.y/font_h;
+
+ int lines_visible = (size.y+line_spacing)/font_h;
+
int space_w=font->get_char_size(' ').width;
int chars_total=0;
@@ -488,9 +490,9 @@ void Label::regenerate_word_cache() {
if (!autowrap) {
minsize.width=width;
if (max_lines_visible > 0 && line_count > max_lines_visible) {
- minsize.height=(font->get_height()+line_spacing)*max_lines_visible;
+ minsize.height=(font->get_height() * max_lines_visible) + (line_spacing * (max_lines_visible - 1));
} else {
- minsize.height=(font->get_height()+line_spacing)*line_count;
+ minsize.height=(font->get_height() * line_count)+(line_spacing * (line_count - 1));
}
}
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 44cc798447..2a4e82a8e7 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -454,7 +454,7 @@ void LineEdit::_notification(int p_what) {
} break;
}
- int ofs_max=width-style->get_minimum_size().width+x_ofs;
+ int ofs_max=width-style->get_minimum_size().width;
int char_ofs=window_pos;
int y_area=height-style->get_minimum_size().height;
@@ -799,8 +799,8 @@ Size2 LineEdit::get_minimum_size() const {
Ref<Font> font=get_font("font");
Size2 min=style->get_minimum_size();
- min+=font->get_string_size(this->text);
-
+ min.height+=font->get_height();
+ min.width+=get_constant("minimum_spaces")*font->get_char_size(' ').x;
return min;
}
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 4083dc893d..aef53ea230 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -1210,7 +1210,7 @@ void Viewport::set_size_override_stretch(bool p_enable) {
bool Viewport::is_size_override_stretch_enabled() const {
- return size_override;
+ return size_override_stretch;
}
void Viewport::set_as_render_target(bool p_enable){
diff --git a/tools/editor/asset_library_editor_plugin.cpp b/tools/editor/asset_library_editor_plugin.cpp
index 0b16ca9545..928acdbcbb 100644
--- a/tools/editor/asset_library_editor_plugin.cpp
+++ b/tools/editor/asset_library_editor_plugin.cpp
@@ -1282,8 +1282,6 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
}
- library_vb->add_child(search_hb);
-
HBoxContainer *search_hb2 = memnew( HBoxContainer );
library_main->add_child(search_hb2);
diff --git a/tools/editor/dependency_editor.cpp b/tools/editor/dependency_editor.cpp
index a702d3c687..6ad7704815 100644
--- a/tools/editor/dependency_editor.cpp
+++ b/tools/editor/dependency_editor.cpp
@@ -399,6 +399,7 @@ void DependencyRemoveDialog::show(const Vector<String> &to_erase) {
_fill_owners(EditorFileSystem::get_singleton()->get_filesystem());
+
if (exist) {
owners->show();
text->set_text(TTR("The files being removed are required by other resources in order for them to work.\nRemove them anyway? (no undo)"));
@@ -417,6 +418,10 @@ void DependencyRemoveDialog::ok_pressed() {
DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
for (Map<String,TreeItem*>::Element *E=files.front();E;E=E->next()) {
+ if (ResourceCache::has(E->key())) {
+ Resource *res = ResourceCache::get(E->key());
+ res->set_path(""); //clear reference to path
+ }
da->remove(E->key());
EditorFileSystem::get_singleton()->update_file(E->key());
}
diff --git a/tools/editor/editor_help.cpp b/tools/editor/editor_help.cpp
index 2d0a8a80b0..ac9feacd46 100644
--- a/tools/editor/editor_help.cpp
+++ b/tools/editor/editor_help.cpp
@@ -649,6 +649,7 @@ void EditorHelp::_class_desc_input(const InputEvent& p_input) {
class_desc->set_selection_enabled(false);
class_desc->set_selection_enabled(true);
}
+ set_focused();
}
void EditorHelp::_add_type(const String& p_type) {
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index d63a010272..26e40cf816 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -56,7 +56,7 @@
#include "io/zip_io.h"
#include "io/config_file.h"
#include "animation_editor.h"
-
+#include "io/stream_peer_ssl.h"
// plugins
#include "plugins/sprite_frames_editor_plugin.h"
#include "plugins/texture_region_editor_plugin.h"
@@ -6381,8 +6381,12 @@ EditorNode::EditorNode() {
add_editor_plugin( memnew( CanvasItemEditorPlugin(this) ) );
add_editor_plugin( memnew( SpatialEditorPlugin(this) ) );
add_editor_plugin( memnew( ScriptEditorPlugin(this) ) );
- add_editor_plugin( memnew( AssetLibraryEditorPlugin(this) ) );
+ if (StreamPeerSSL::is_available()) {
+ add_editor_plugin( memnew( AssetLibraryEditorPlugin(this) ) );
+ } else {
+ WARN_PRINT("Asset Library not available, as it requires SSL to work.");
+ }
//more visually meaningful to have this later
raise_bottom_panel_item(AnimationPlayerEditor::singleton);
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index d2d1f9e625..8d00f2cd8a 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -302,6 +302,7 @@ void ScriptTextEditor::_load_theme_settings() {
get_text_edit()->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2)));
get_text_edit()->add_color_override("search_result_color",EDITOR_DEF("text_editor/search_result_color",Color(0.05,0.25,0.05,1)));
get_text_edit()->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1)));
+ get_text_edit()->add_constant_override("line_spacing", EDITOR_DEF("text_editor/line_spacing",4));
Color keyword_color= EDITOR_DEF("text_editor/keyword_color",Color(0.5,0.0,0.2));
diff --git a/tools/editor/plugins/shader_editor_plugin.cpp b/tools/editor/plugins/shader_editor_plugin.cpp
index 0ca6a069bc..61dde9a9ef 100644
--- a/tools/editor/plugins/shader_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_editor_plugin.cpp
@@ -375,6 +375,7 @@ void ShaderEditor::_editor_settings_changed() {
vertex_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences"));
vertex_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink"));
vertex_editor->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/caret_blink_speed"));
+ vertex_editor->get_text_edit()->add_constant_override("line_spacing", EditorSettings::get_singleton()->get("text_editor/line_spacing"));
fragment_editor->get_text_edit()->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/auto_brace_complete"));
fragment_editor->get_text_edit()->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/scroll_past_end_of_file"));
@@ -385,6 +386,7 @@ void ShaderEditor::_editor_settings_changed() {
fragment_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences"));
fragment_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink"));
fragment_editor->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/caret_blink_speed"));
+ fragment_editor->get_text_edit()->add_constant_override("line_spacing", EditorSettings::get_singleton()->get("text_editor/line_spacing"));
light_editor->get_text_edit()->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/auto_brace_complete"));
light_editor->get_text_edit()->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/scroll_past_end_of_file"));
@@ -395,6 +397,7 @@ void ShaderEditor::_editor_settings_changed() {
light_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences"));
light_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink"));
light_editor->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/caret_blink_speed"));
+ light_editor->get_text_edit()->add_constant_override("line_spacing", EditorSettings::get_singleton()->get("text_editor/line_spacing"));
}
void ShaderEditor::_bind_methods() {
diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp
index c00bd0ab37..419f05f2cf 100644
--- a/tools/editor/project_manager.cpp
+++ b/tools/editor/project_manager.cpp
@@ -39,7 +39,7 @@
#include "scene/gui/line_edit.h"
#include "scene/gui/panel_container.h"
#include "scene/gui/center_container.h"
-
+#include "io/stream_peer_ssl.h"
#include "scene/gui/texture_frame.h"
#include "scene/gui/margin_container.h"
@@ -986,10 +986,14 @@ ProjectManager::ProjectManager() {
tree_vb->add_spacer();
+ if (StreamPeerSSL::is_available()) {
- asset_library = memnew( EditorAssetLibrary(true) );
- asset_library->set_name("Templates");
- tabs->add_child(asset_library);
+ asset_library = memnew( EditorAssetLibrary(true) );
+ asset_library->set_name("Templates");
+ tabs->add_child(asset_library);
+ } else {
+ WARN_PRINT("Asset Library not available, as it requires SSL to work.");
+ }
CenterContainer *cc = memnew( CenterContainer );
diff --git a/tools/editor/scenes_dock.cpp b/tools/editor/scenes_dock.cpp
index 7c61e3d4a1..7953cf2739 100644
--- a/tools/editor/scenes_dock.cpp
+++ b/tools/editor/scenes_dock.cpp
@@ -1052,6 +1052,7 @@ void ScenesDock::_file_option(int p_option) {
if (path.ends_with("/") || !files->is_selected(i))
continue;
torem.push_back(path);
+
}
if (torem.empty()) {
diff --git a/tools/translations/ko.po b/tools/translations/ko.po
index 489e3a6b12..2a6ee8e06f 100644
--- a/tools/translations/ko.po
+++ b/tools/translations/ko.po
@@ -207,13 +207,12 @@ msgstr ""
"SampleLibrary 리소스를 생성하거나, 지정해야합니다."
#: scene/3d/sprite_3d.cpp
-#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the 'Frames' property in "
"order for AnimatedSprite3D to display frames."
msgstr ""
-"AnimatedSprite이 프레임을 보여주기 위해서는 'Frames' 속성에 SpriteFrames 리소"
-"스 만들거나 지정해야 합니다."
+"AnimatedSprite3D가 프레임을 보여주기 위해서는 'Frames' 속성에 SpriteFrames 리"
+"소스 만들거나 지정해야 합니다."
#: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Cancel"
@@ -251,24 +250,20 @@ msgid "Open"
msgstr "열기"
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Open a File"
-msgstr "샘플 파일 열기"
+msgstr "파일 열기"
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Open File(s)"
-msgstr "샘플 파일 열기"
+msgstr "파일 열기"
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Open a Directory"
-msgstr "디렉토리 선택"
+msgstr "디렉토리 열기"
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Open a File or Directory"
-msgstr "디렉토리 선택"
+msgstr "디렉토리 또는 파일 열기"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/editor_node.cpp
@@ -332,7 +327,7 @@ msgstr "알트+"
#: scene/gui/input_action.cpp
msgid "Ctrl+"
-msgstr ""
+msgstr "컨트롤+"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
#: tools/editor/settings_config_dialog.cpp
@@ -797,22 +792,20 @@ msgid "Site:"
msgstr "사이트:"
#: tools/editor/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support.."
-msgstr "내보내기.."
+msgstr "지원.."
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "공식"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "커뮤니티"
#: tools/editor/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Testing"
-msgstr "설정"
+msgstr "테스팅"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
@@ -1005,9 +998,8 @@ msgid "Disconnect"
msgstr "연결해제"
#: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp
-#, fuzzy
msgid "Signals"
-msgstr "시그널:"
+msgstr "시그널"
#: tools/editor/create_dialog.cpp
msgid "Create New"
@@ -1200,7 +1192,7 @@ msgstr "상속한 클래스:"
#: tools/editor/editor_help.cpp
msgid "Brief Description:"
-msgstr "짧은 설명:"
+msgstr "간단한 설명:"
#: tools/editor/editor_help.cpp
msgid "Public Methods:"
@@ -1267,9 +1259,8 @@ msgid "Setting Up.."
msgstr "설정 중.."
#: tools/editor/editor_log.cpp
-#, fuzzy
msgid " Output:"
-msgstr "출력"
+msgstr "출력:"
#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
msgid "Re-Importing"
@@ -1382,9 +1373,8 @@ msgid "Copy Params"
msgstr "속성 복사"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Paste Params"
-msgstr "프레임 붙여넣기"
+msgstr "속성 붙여넣기"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -1404,9 +1394,8 @@ msgid "Make Sub-Resources Unique"
msgstr "하위 리소스를 유일하게 만들기"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Open in Help"
-msgstr "씬 열기"
+msgstr "도움말에서 열기"
#: tools/editor/editor_node.cpp
msgid "There is no defined scene to run."
@@ -1417,6 +1406,8 @@ msgid ""
"No main scene has ever been defined.\n"
"Select one from \"Project Settings\" under the 'application' category."
msgstr ""
+"메인 씬이 지정되지 않았습니다.\n"
+"\"프로젝트 설정\"의 'Application' 항목에서 씬을 하나 선택해 주세요."
#: tools/editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
@@ -1535,9 +1526,8 @@ msgid "Save Layout"
msgstr "레이아웃 저장"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Load Layout"
-msgstr "레이아웃 저장"
+msgstr "레이아웃 로드"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
@@ -1601,9 +1591,8 @@ msgid "Open Recent"
msgstr "최근 열었던 항목"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Quick Filter Files.."
-msgstr "빠른 파일 검색.."
+msgstr "빠른 파일 필터링.."
#: tools/editor/editor_node.cpp
msgid "Convert To.."
@@ -1675,9 +1664,8 @@ msgid "Export"
msgstr "내보내기"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Play the project."
-msgstr "프로젝트 실행 (F5)."
+msgstr "프로젝트 실행."
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
@@ -1689,14 +1677,12 @@ msgid "Pause the scene"
msgstr "씬 일시 정지"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Pause Scene"
msgstr "씬 일시 정지"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Stop the scene."
-msgstr "씬 정지 (F8)."
+msgstr "씬 정지"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
@@ -1704,14 +1690,12 @@ msgid "Stop"
msgstr "정지"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Play the edited scene."
-msgstr "편집 중인 씬 실행 (F6)."
+msgstr "편집 중인 씬 실행"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Play Scene"
-msgstr "씬 저장"
+msgstr "씬 실행"
#: tools/editor/editor_node.cpp
msgid "Play custom scene"
@@ -1722,7 +1706,6 @@ msgid "Debug options"
msgstr "디버그 옵션"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Deploy with Remote Debug"
msgstr "원격 디버그 배포"
@@ -1731,10 +1714,12 @@ msgid ""
"When exporting or deploying, the resulting executable will attempt to connect "
"to the IP of this computer in order to be debugged."
msgstr ""
+"내보내기나 배포를 할 때, 실행 파일이 디버깅을 위해서 이 컴퓨터의 IP로 연결을 "
+"시도합니다."
#: tools/editor/editor_node.cpp
msgid "Small Deploy with Network FS"
-msgstr ""
+msgstr "네트워크 파일 시스템을 갖는 작은 배포"
#: tools/editor/editor_node.cpp
msgid ""
@@ -1745,6 +1730,11 @@ msgid ""
"On Android, deploy will use the USB cable for faster performance. This option "
"speeds up testing for games with a large footprint."
msgstr ""
+"이 옵션이 활성화 되어 있을 경우, 내보내기나 배포는 최소한의 실행파일을 생성합"
+"니다.\n"
+"파일 시스템은 네트워크를 통해서 에디터 상의 프로젝트가 제공합니다.\n"
+"안드로이드의 경우, USB 케이블을 사용하여 배포할 경우 더 빠른 퍼포먼스를 제공합"
+"니다. 이 옵션은 큰 설치 용량을 요구하는 게임의 테스트를 빠르게 할 수 있습니다."
#: tools/editor/editor_node.cpp
msgid "Visible Collision Shapes"
@@ -1755,6 +1745,8 @@ msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
+"이 옵션이 활성화 되어 있을 경우, 게임이 실행되는 동안 (2D와 3D의) 충돌 모양과 "
+"Raycast 노드가 표시됩니다."
#: tools/editor/editor_node.cpp
msgid "Visible Navigation"
@@ -1765,10 +1757,12 @@ msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
+"이 옵션이 활성화 되어 있을 경우, 게임이 실행되는 동안 네비게이션 메쉬가 표시됩"
+"니다."
#: tools/editor/editor_node.cpp
msgid "Sync Scene Changes"
-msgstr ""
+msgstr "씬 변경사항 동기화"
#: tools/editor/editor_node.cpp
msgid ""
@@ -1777,11 +1771,14 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"이 옵션이 활성화 되어 있을 경우, 에디터상의 씬의 변경사항이 실행중인 게임에 반"
+"영됩니다.\n"
+"기기에 원격으로 사용되는 경우, 네트워크 파일 시스템과 함께하면 더욱 효과적입니"
+"다."
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Sync Script Changes"
-msgstr "변경사항만 갱신"
+msgstr "스크립트 변경사항 동기화"
#: tools/editor/editor_node.cpp
msgid ""
@@ -1790,6 +1787,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"이 옵션이 활성화 되어 있을 경우, 스크립트를 수정하고 저장하면 실행중인 게임에"
+"서 다시 읽어 들입니다.\n"
+"기기에 원격으로 사용되는 경우, 네트워크 파일 시스템과 함께하면 더욱 효과적입니"
+"다."
#: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Settings"
@@ -2051,9 +2052,8 @@ msgid "Imported Resources"
msgstr "가져온 리소스"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#, fuzzy
msgid "No bit masks to import!"
-msgstr "가져올 항목이 없습니다!"
+msgstr "가져올 비트 마스크가 없습니다!"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
@@ -2083,9 +2083,8 @@ msgid "Save path is empty!"
msgstr "저장 경로가 없습니다!"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#, fuzzy
msgid "Import BitMasks"
-msgstr "텍스쳐 가져오기"
+msgstr "비트마스크 가져오기"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
@@ -2112,7 +2111,7 @@ msgstr "수락"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
msgid "Bit Mask"
-msgstr ""
+msgstr "비트 마스크"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "No source font file!"
@@ -2623,18 +2622,16 @@ msgid "MultiNode Set"
msgstr "다중 노드 설정"
#: tools/editor/node_dock.cpp
-#, fuzzy
msgid "Node"
-msgstr "믹스 노드"
+msgstr "노드"
#: tools/editor/node_dock.cpp
-#, fuzzy
msgid "Groups"
-msgstr "그룹:"
+msgstr "그룹"
#: tools/editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "시그널과 그룹을 편집할 노드를 선택하세요."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -3944,13 +3941,12 @@ msgid "Auto Indent"
msgstr "자동 들여쓰기"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Reload Tool Script"
-msgstr "노드 스크립트 생성"
+msgstr "툴 스크립트 다시 로드"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Reload Tool Script (Soft)"
-msgstr ""
+msgstr "툴 스크립트 다시 로드 (소프트)"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
@@ -4607,20 +4603,20 @@ msgid "StyleBox Preview:"
msgstr "StyleBox 미리보기:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Texture Region Editor"
-msgstr "Sprite 구역 편집기"
+msgstr "텍스쳐 구역 편집기"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Scale Region Editor"
-msgstr "Sprite 구역 편집기"
+msgstr "스케일 구역 편집기"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid ""
"No texture in this node.\n"
"Set a texture to be able to edit region."
msgstr ""
+"이 노드에 텍스쳐가 없습니다.\n"
+"구역을 편집하기 위해서는 텍스쳐를 지정해야합니다."
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -5142,14 +5138,12 @@ msgstr ""
"목록에서 프로젝트를 제거하시겠습니까? (폴더와 파일들은 남아있게 됩니다.)"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Project Manager"
-msgstr "프로젝트 명:"
+msgstr "프로젝트 매니저"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Project List"
-msgstr "종료하고 프로젝트 목록으로 돌아가기"
+msgstr "프로젝트 목록"
#: tools/editor/project_manager.cpp
msgid "Run"
@@ -5302,14 +5296,12 @@ msgid "Invalid name. Must not collide with an existing global constant name."
msgstr "유효하지 않은 이름입니다. 전역 상수 이름과 충돌하지 않아야 합니다."
#: tools/editor/project_settings.cpp
-#, fuzzy
msgid "Autoload '%s' already exists!"
-msgstr "'%s' 액션이 이미 존재합니다!"
+msgstr "자동로드에 '%s'이(가) 이미 존재합니다!"
#: tools/editor/project_settings.cpp
-#, fuzzy
msgid "Rename Autoload"
-msgstr "자동 로드 삭제"
+msgstr "자동 로드 이름 변경"
#: tools/editor/project_settings.cpp
msgid "Toggle AutoLoad Globals"
@@ -5832,9 +5824,8 @@ msgid "View Owners.."
msgstr "소유자 보기.."
#: tools/editor/scenes_dock.cpp
-#, fuzzy
msgid "Copy Path"
-msgstr "속성 복사"
+msgstr "경로 복사"
#: tools/editor/scenes_dock.cpp
msgid "Rename or Move.."
@@ -6074,7 +6065,7 @@ msgstr "트리로부터 설정"
#: tools/editor/settings_config_dialog.cpp
msgid "Shortcuts"
-msgstr ""
+msgstr "단축키"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"