diff options
Diffstat (limited to 'tools')
515 files changed, 23655 insertions, 13749 deletions
diff --git a/tools/SCsub b/tools/SCsub index b0b33d4f01..43cad794d4 100644 --- a/tools/SCsub +++ b/tools/SCsub @@ -2,124 +2,120 @@ Import('env') -env.tool_sources=[] -env.add_source_files(env.tool_sources,"*.cpp") +env.tool_sources = [] +env.add_source_files(env.tool_sources, "*.cpp") Export('env') -def make_translations_header(target,source,env): +def make_translations_header(target, source, env): + dst = target[0].srcnode().abspath - dst = target[0].srcnode().abspath + g = open(dst, "wb") - g = open(dst,"wb") - - - """" + """" """ - g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") - g.write("#ifndef _EDITOR_TRANSLATIONS_H\n") - g.write("#define _EDITOR_TRANSLATIONS_H\n") - - import zlib - import os.path + g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") + g.write("#ifndef _EDITOR_TRANSLATIONS_H\n") + g.write("#define _EDITOR_TRANSLATIONS_H\n") - paths = [node.srcnode().abspath for node in source] - sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0]) + import zlib + import os.path - xl_names=[] - for i in range(len(sorted_paths)): - print("Appending translation: "+sorted_paths[i]) - f = open(sorted_paths[i],"rb") - buf = f.read() - decomp_size = len(buf) - buf = zlib.compress(buf) - name = os.path.splitext(os.path.basename(sorted_paths[i]))[0] + paths = [node.srcnode().abspath for node in source] + sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0]) - #g.write("static const int _translation_"+name+"_compressed_size="+str(len(buf))+";\n") - #g.write("static const int _translation_"+name+"_uncompressed_size="+str(decomp_size)+";\n") - g.write("static const unsigned char _translation_"+name+"_compressed[]={\n") - for i in range(len(buf)): - g.write(str(ord(buf[i]))+",\n") + xl_names = [] + for i in range(len(sorted_paths)): + print("Appending translation: " + sorted_paths[i]) + f = open(sorted_paths[i], "rb") + buf = f.read() + decomp_size = len(buf) + buf = zlib.compress(buf) + name = os.path.splitext(os.path.basename(sorted_paths[i]))[0] - g.write("};\n") + #g.write("static const int _translation_"+name+"_compressed_size="+str(len(buf))+";\n") + #g.write("static const int _translation_"+name+"_uncompressed_size="+str(decomp_size)+";\n") + g.write("static const unsigned char _translation_" + name + "_compressed[]={\n") + for i in range(len(buf)): + g.write(str(ord(buf[i])) + ",\n") - xl_names.append([name,len(buf),str(decomp_size)]) + g.write("};\n") - g.write("struct EditorTranslationList {\n") - g.write("\tconst char* lang;\n"); - g.write("\tint comp_size;\n"); - g.write("\tint uncomp_size;\n"); - g.write("\tconst unsigned char* data;\n"); - g.write("};\n\n"); - g.write("static EditorTranslationList _editor_translations[]={\n") - for x in xl_names: - g.write("\t{ \""+x[0]+"\", "+str(x[1])+", "+str(x[2])+",_translation_"+x[0]+"_compressed},\n") - g.write("\t{NULL,0,0,NULL}\n") - g.write("};\n") + xl_names.append([name, len(buf), str(decomp_size)]) - g.write("#endif") + g.write("struct EditorTranslationList {\n") + g.write("\tconst char* lang;\n") + g.write("\tint comp_size;\n") + g.write("\tint uncomp_size;\n") + g.write("\tconst unsigned char* data;\n") + g.write("};\n\n") + g.write("static EditorTranslationList _editor_translations[]={\n") + for x in xl_names: + g.write("\t{ \"" + x[0] + "\", " + str(x[1]) + ", " + str(x[2]) + ",_translation_" + x[0] + "_compressed},\n") + g.write("\t{NULL,0,0,NULL}\n") + g.write("};\n") + g.write("#endif") -def make_fonts_header(target,source,env): +def make_fonts_header(target, source, env): - dst = target[0].srcnode().abspath + dst = target[0].srcnode().abspath - g = open(dst,"wb") + g = open(dst, "wb") - - """" + """" """ - g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") - g.write("#ifndef _EDITOR_FONTS_H\n") - g.write("#define _EDITOR_FONTS_H\n") + g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") + g.write("#ifndef _EDITOR_FONTS_H\n") + g.write("#define _EDITOR_FONTS_H\n") + + # saving uncompressed, since freetype will reference from memory pointer + xl_names = [] + for i in range(len(source)): + print("Appending font: " + source[i].srcnode().abspath) + f = open(source[i].srcnode().abspath, "rb") + buf = f.read() + import os.path + + name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0] + + g.write("static const int _font_" + name + "_size=" + str(len(buf)) + ";\n") + g.write("static const unsigned char _font_" + name + "[]={\n") + for i in range(len(buf)): + g.write(str(ord(buf[i])) + ",\n") + + g.write("};\n") - #saving uncompressed, since freetype will reference from memory pointer - xl_names=[] - for i in range(len(source)): - print("Appending font: "+source[i].srcnode().abspath) - f = open(source[i].srcnode().abspath,"rb") - buf = f.read() - import os.path - - name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0] + g.write("#endif") - g.write("static const int _font_"+name+"_size="+str(len(buf))+";\n") - g.write("static const unsigned char _font_"+name+"[]={\n") - for i in range(len(buf)): - g.write(str(ord(buf[i]))+",\n") - g.write("};\n") - - g.write("#endif") - - -if (env["tools"]!="no"): +if (env["tools"] != "no"): - import glob + import glob - dir = env.Dir('.').abspath - tlist = glob.glob(dir + "/translations/*.po") + dir = env.Dir('.').abspath + tlist = glob.glob(dir + "/translations/*.po") - print("translations: ",tlist) - env.Depends('#tools/editor/translations.h',tlist) - env.Command('#tools/editor/translations.h',tlist,make_translations_header) + print("translations: ", tlist) + env.Depends('#tools/editor/translations.h', tlist) + env.Command('#tools/editor/translations.h', tlist, make_translations_header) - flist = glob.glob(dir + "/editor_fonts/*.ttf") - flist.append( glob.glob(dir + "/editor_fonts/*.otf") ) + flist = glob.glob(dir + "/editor_fonts/*.ttf") + flist.append(glob.glob(dir + "/editor_fonts/*.otf")) - print("fonts: ",flist) - env.Depends('#tools/editor/builtin_fonts.h',flist) - env.Command('#tools/editor/builtin_fonts.h',flist,make_fonts_header) + print("fonts: ", flist) + env.Depends('#tools/editor/builtin_fonts.h', flist) + env.Command('#tools/editor/builtin_fonts.h', flist, make_fonts_header) - SConscript('editor/SCsub'); - SConscript('collada/SCsub'); - SConscript('doc/SCsub') + SConscript('editor/SCsub') + SConscript('collada/SCsub') + SConscript('doc/SCsub') - lib = env.Library("tool",env.tool_sources) + lib = env.Library("tool", env.tool_sources) - env.Prepend(LIBS=[lib]) + env.Prepend(LIBS=[lib]) diff --git a/tools/collada/SCsub b/tools/collada/SCsub index 473474201a..4bc64ffdc2 100644 --- a/tools/collada/SCsub +++ b/tools/collada/SCsub @@ -2,6 +2,6 @@ Import('env') -env.add_source_files(env.tool_sources,"*.cpp") +env.add_source_files(env.tool_sources, "*.cpp") Export('env') diff --git a/tools/collada/collada.cpp b/tools/collada/collada.cpp index 268d42a613..a23fd84aa0 100644 --- a/tools/collada/collada.cpp +++ b/tools/collada/collada.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,6 +29,7 @@ #ifdef TOOLS_ENABLED #include "collada.h" + #include "stdio.h" //#define DEBUG_DEFAULT_ANIMATION @@ -103,7 +104,7 @@ Transform Collada::fix_transform(const Transform& p_transform) { } #endif -// tr.scale(Vector3(state.unit_scale.unit_scale.unit_scale)); + //tr.scale(Vector3(state.unit_scale.unit_scale.unit_scale)); return tr; //return state.matrix_fix * p_transform; } @@ -144,7 +145,7 @@ Transform Collada::Node::compute_transform(Collada &state) const { case XForm::OP_ROTATE: { if (xf.data.size()>=4) { - xform_step.rotate(Vector3(xf.data[0],xf.data[1],xf.data[2]),-Math::deg2rad(xf.data[3])); + xform_step.rotate(Vector3(xf.data[0],xf.data[1],xf.data[2]),Math::deg2rad(xf.data[3])); } } break; case XForm::OP_SCALE: { @@ -322,7 +323,7 @@ void Collada::_parse_image(XMLParser& parser) { String path = parser.get_attribute_value("source").strip_edges(); if (path.find("://")==-1 && path.is_rel_path()) { // path is relative to file being loaded, so convert to a resource path - image.path=Globals::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path.percent_decode()); + image.path=GlobalConfig::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path.percent_decode()); } } else { @@ -342,11 +343,11 @@ void Collada::_parse_image(XMLParser& parser) { if (path.find("://")==-1 && path.is_rel_path()) { // path is relative to file being loaded, so convert to a resource path - path=Globals::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path); + path=GlobalConfig::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path); } else if (path.find("file:///")==0) { path=path.replace_first("file:///",""); - path=Globals::get_singleton()->localize_path(path); + path=GlobalConfig::get_singleton()->localize_path(path); } image.path=path; @@ -444,9 +445,11 @@ Vector<String> Collada::_read_string_array(XMLParser& parser) { // parse String data String str = parser.get_node_data(); array=str.split_spaces(); - //for(int i=0;i<array.size();i++) { - // print_line(itos(i)+": "+array[i]); - //} + /* + for(int i=0;i<array.size();i++) { + print_line(itos(i)+": "+array[i]); + } + */ } else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END) @@ -463,7 +466,7 @@ Transform Collada::_read_transform(XMLParser& parser) { if (parser.is_empty()) return Transform(); - Vector<float> array; + Vector<String> array; while(parser.read()==OK) { // TODO: check for comments inside the element // and ignore them. @@ -471,7 +474,7 @@ Transform Collada::_read_transform(XMLParser& parser) { if (parser.get_node_type() == XMLParser::NODE_TEXT) { // parse float data String str = parser.get_node_data(); - array=str.split_floats(" ",false); + array=str.split_spaces(); } else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END) @@ -479,7 +482,13 @@ Transform Collada::_read_transform(XMLParser& parser) { } ERR_FAIL_COND_V(array.size()!=16,Transform()); - return _read_transform_from_array(array); + Vector<float> farr; + farr.resize(16); + for(int i=0;i<16;i++) { + farr[i]=array[i].to_double(); + } + + return _read_transform_from_array(farr); } String Collada::_read_empty_draw_type(XMLParser& parser) { @@ -1287,7 +1296,7 @@ void Collada::_parse_skin_controller(XMLParser& parser,String p_id) { int stride=1; if (parser.has_attribute("stride")) - stride=parser.get_attribute_value("stride").to_int();; + stride=parser.get_attribute_value("stride").to_int(); skindata.sources[current_source].stride=stride; COLLADA_PRINT("section: "+current_source+" stride "+itos(skindata.sources[current_source].stride)); @@ -1361,8 +1370,11 @@ void Collada::_parse_skin_controller(XMLParser& parser,String p_id) { skindata.weights=weights; - }// else if (!parser.is_empty()) - // parser.skip_section(); + } + /* + else if (!parser.is_empty()) + parser.skip_section(); + */ } else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name()=="skin") break; @@ -1390,7 +1402,7 @@ void Collada::_parse_skin_controller(XMLParser& parser,String p_id) { for(int i=0;i<joint_source.sarray.size();i++) { String name = joint_source.sarray[i]; - Transform xform = _read_transform_from_array(ibm_source.array,i*16);// <- this is a mistake, it must be applied to vertices + Transform xform = _read_transform_from_array(ibm_source.array,i*16); //<- this is a mistake, it must be applied to vertices xform.affine_invert(); // inverse for rest, because it's an inverse #ifdef COLLADA_IMPORT_SCALE_SCENE xform.origin*=state.unit_scale; @@ -1436,8 +1448,10 @@ void Collada::_parse_morph_controller(XMLParser& parser, String p_id) { } else if (section=="Name_array" || section=="IDREF_array") { // create a new array and read it. - //if (section=="IDREF_array") - // morphdata.use_idrefs=true; + /* + if (section=="IDREF_array") + morphdata.use_idrefs=true; + */ if (morphdata.sources.has(current_source)) { morphdata.sources[current_source].sarray = _read_string_array(parser); @@ -1457,7 +1471,7 @@ void Collada::_parse_morph_controller(XMLParser& parser, String p_id) { int stride=1; if (parser.has_attribute("stride")) - stride=parser.get_attribute_value("stride").to_int();; + stride=parser.get_attribute_value("stride").to_int(); morphdata.sources[current_source].stride=stride; COLLADA_PRINT("section: "+current_source+" stride "+itos(morphdata.sources[current_source].stride)); @@ -1485,8 +1499,10 @@ void Collada::_parse_morph_controller(XMLParser& parser, String p_id) { } - // else if (!parser.is_empty()) - // parser.skip_section(); + /* + else if (!parser.is_empty()) + parser.skip_section(); + */ } else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name()=="morph") break; @@ -1598,7 +1614,7 @@ Collada::Node* Collada::_parse_visual_instance_camera(XMLParser& parser) { cam->camera= _uri_to_id(parser.get_attribute_value_safe("url")); if (state.up_axis==Vector3::AXIS_Z) //collada weirdness - cam->post_transform.basis.rotate(Vector3(1,0,0),Math_PI*0.5); + cam->post_transform.basis.rotate(Vector3(1,0,0),-Math_PI*0.5); if (parser.is_empty()) //nothing else to parse... return cam; @@ -1619,7 +1635,7 @@ Collada::Node* Collada::_parse_visual_instance_light(XMLParser& parser) { cam->light= _uri_to_id(parser.get_attribute_value_safe("url")); if (state.up_axis==Vector3::AXIS_Z) //collada weirdness - cam->post_transform.basis.rotate(Vector3(1,0,0),Math_PI*0.5); + cam->post_transform.basis.rotate(Vector3(1,0,0),-Math_PI*0.5); if (parser.is_empty()) //nothing else to parse... return cam; @@ -1699,7 +1715,7 @@ Collada::Node* Collada::_parse_visual_scene_node(XMLParser& parser) { if ( parser.has_attribute("sid") ) { //bones may not have sid joint->sid=parser.get_attribute_value("sid"); -// state.bone_map[joint->sid]=joint; + //state.bone_map[joint->sid]=joint; } else if (state.idref_joints.has(name)) { joint->sid=name; //kind of a cheat but.. } else if (parser.has_attribute("name")) { @@ -2714,7 +2730,7 @@ Error Collada::load(const String& p_path, int p_flags) { Error err = parser.open(p_path); ERR_FAIL_COND_V(err,err); - state.local_path = Globals::get_singleton()->localize_path(p_path); + state.local_path = GlobalConfig::get_singleton()->localize_path(p_path); state.import_flags=p_flags; /* Skip headers */ err=OK; diff --git a/tools/collada/collada.h b/tools/collada/collada.h index 9340cdd3f3..fd7ad4920d 100644 --- a/tools/collada/collada.h +++ b/tools/collada/collada.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m b/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m index 3e4ea5e129..88b8e60670 100644 --- a/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m +++ b/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/dist/osx_template.app/Contents/Info.plist b/tools/dist/osx_template.app/Contents/Info.plist index 5146c875bc..eee787bdaf 100755 --- a/tools/dist/osx_template.app/Contents/Info.plist +++ b/tools/dist/osx_template.app/Contents/Info.plist @@ -27,11 +27,11 @@ <key>NSHumanReadableCopyright</key> <string>$copyright</string> <key>LSMinimumSystemVersion</key> - <string>10.6.0</string> + <string>10.9.0</string> <key>LSMinimumSystemVersionByArchitecture</key> <dict> <key>x86_64</key> - <string>10.6.0</string> + <string>10.9.0</string> </dict> <key>NSHighResolutionCapable</key> $highres diff --git a/tools/dist/osx_tools.app/Contents/Info.plist b/tools/dist/osx_tools.app/Contents/Info.plist index 2a3e727133..4d88e97503 100755 --- a/tools/dist/osx_tools.app/Contents/Info.plist +++ b/tools/dist/osx_tools.app/Contents/Info.plist @@ -9,7 +9,7 @@ <key>CFBundleName</key> <string>Godot</string> <key>CFBundleGetInfoString</key> - <string>(c) 2007-2016 Juan Linietsky, Ariel Manzur</string> + <string>(c) 2007-2017 Juan Linietsky, Ariel Manzur</string> <key>CFBundleIconFile</key> <string>Godot.icns</string> <key>CFBundleIdentifier</key> @@ -25,13 +25,13 @@ <key>CFBundleVersion</key> <string>2.2-dev</string> <key>NSHumanReadableCopyright</key> - <string>© 2007-2016 Juan Linietsky, Ariel Manzur</string> + <string>© 2007-2017 Juan Linietsky, Ariel Manzur</string> <key>LSMinimumSystemVersion</key> - <string>10.6.0</string> + <string>10.9.0</string> <key>LSMinimumSystemVersionByArchitecture</key> <dict> <key>x86_64</key> - <string>10.6.0</string> + <string>10.9.0</string> </dict> <key>NSHighResolutionCapable</key> <true/> diff --git a/tools/dist/uwp_template/AppxManifest.xml b/tools/dist/uwp_template/AppxManifest.xml index 48a2ba7eb3..d5e653708c 100644 --- a/tools/dist/uwp_template/AppxManifest.xml +++ b/tools/dist/uwp_template/AppxManifest.xml @@ -15,7 +15,7 @@ <Resource Language="EN-US" />
</Resources>
<Applications>
- <Application Id="App" Executable="godot.winrt.exe" EntryPoint="GodotWinRT.App">
+ <Application Id="App" Executable="godot.uwp.exe" EntryPoint="GodotUWP.App">
<uap:VisualElements DisplayName="$display_name$" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="$app_description$" BackgroundColor="$bg_color$">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" Square310x310Logo="Assets\Square310x310Logo.png" Square71x71Logo="Assets\Square71x71Logo.png" ShortName="$short_name$">
$name_on_tiles$
diff --git a/tools/doc/SCsub b/tools/doc/SCsub index 473474201a..4bc64ffdc2 100644 --- a/tools/doc/SCsub +++ b/tools/doc/SCsub @@ -2,6 +2,6 @@ Import('env') -env.add_source_files(env.tool_sources,"*.cpp") +env.add_source_files(env.tool_sources, "*.cpp") Export('env') diff --git a/tools/doc/doc_data.cpp b/tools/doc/doc_data.cpp index 4a8fdfb215..d51dc886b2 100644 --- a/tools/doc/doc_data.cpp +++ b/tools/doc/doc_data.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,9 +26,9 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "version.h" #include "doc_data.h" +#include "version.h" #include "global_constants.h" #include "globals.h" #include "script_language.h" @@ -132,6 +132,9 @@ void DocData::merge_from(const DocData& p_data) { const PropertyDoc &pf = cf.properties[j]; p.description=pf.description; + p.setter=pf.setter; + p.getter=pf.getter; + break; } } @@ -159,7 +162,7 @@ void DocData::generate(bool p_basic_types) { List<StringName> classes; - ObjectTypeDB::get_type_list(&classes); + ClassDB::get_class_list(&classes); classes.sort_custom<StringName::AlphCompare>(); while(classes.size()) { @@ -172,11 +175,35 @@ void DocData::generate(bool p_basic_types) { class_list[cname]=ClassDoc(); ClassDoc& c = class_list[cname]; c.name=cname; - c.inherits=ObjectTypeDB::type_inherits_from(name); - c.category=ObjectTypeDB::get_category(name); + c.inherits=ClassDB::get_parent_class(name); + c.category=ClassDB::get_category(name); + + + List<PropertyInfo> properties; + ClassDB::get_property_list(name,&properties,true); + + for(List<PropertyInfo>::Element *E=properties.front();E;E=E->next()) { + if (E->get().usage& PROPERTY_USAGE_GROUP || E->get().usage& PROPERTY_USAGE_CATEGORY) + continue; + + PropertyDoc prop; + StringName setter = ClassDB::get_property_setter(name,E->get().name); + StringName getter = ClassDB::get_property_getter(name,E->get().name); + + prop.name=E->get().name; + prop.setter=setter; + prop.getter=getter; + if (E->get().type==Variant::OBJECT && E->get().hint==PROPERTY_HINT_RESOURCE_TYPE) + prop.type=E->get().hint_string; + else + prop.type=Variant::get_type_name(E->get().type); + + c.properties.push_back(prop); + } + List<MethodInfo> method_list; - ObjectTypeDB::get_method_list(name,&method_list,true); + ClassDB::get_method_list(name,&method_list,true); method_list.sort(); @@ -189,7 +216,7 @@ void DocData::generate(bool p_basic_types) { method.name=E->get().name; - MethodBind *m = ObjectTypeDB::get_method(name,E->get().name); + MethodBind *m = ClassDB::get_method(name,E->get().name); if (E->get().flags&METHOD_FLAG_VIRTUAL) @@ -223,7 +250,7 @@ void DocData::generate(bool p_basic_types) { } else if (arginfo.type!=Variant::NIL) // { #endif method.return_type=(arginfo.hint==PROPERTY_HINT_RESOURCE_TYPE)?arginfo.hint_string:Variant::get_type_name(arginfo.type); -// } + //} } else { @@ -281,23 +308,23 @@ void DocData::generate(bool p_basic_types) { default_arg_text=Variant::get_type_name(default_arg.get_type())+"("+default_arg_text+")"; break; - case Variant::_AABB: //sorry naming convention fail :( not like it's used often // 10 + case Variant::RECT3: //sorry naming convention fail :( not like it's used often // 10 case Variant::COLOR: case Variant::PLANE: - case Variant::RAW_ARRAY: - case Variant::INT_ARRAY: - case Variant::REAL_ARRAY: - case Variant::STRING_ARRAY: //25 - case Variant::VECTOR2_ARRAY: - case Variant::VECTOR3_ARRAY: - case Variant::COLOR_ARRAY: + case Variant::POOL_BYTE_ARRAY: + case Variant::POOL_INT_ARRAY: + case Variant::POOL_REAL_ARRAY: + case Variant::POOL_STRING_ARRAY: //25 + case Variant::POOL_VECTOR2_ARRAY: + case Variant::POOL_VECTOR3_ARRAY: + case Variant::POOL_COLOR_ARRAY: default_arg_text=Variant::get_type_name(default_arg.get_type())+"("+default_arg_text+")"; break; case Variant::VECTOR2: // 5 case Variant::RECT2: case Variant::VECTOR3: case Variant::QUAT: - case Variant::MATRIX3: + case Variant::BASIS: default_arg_text=Variant::get_type_name(default_arg.get_type())+default_arg_text; break; case Variant::OBJECT: @@ -358,7 +385,7 @@ void DocData::generate(bool p_basic_types) { } List<MethodInfo> signal_list; - ObjectTypeDB::get_signal_list(name,&signal_list,true); + ClassDB::get_signal_list(name,&signal_list,true); if (signal_list.size()) { @@ -383,13 +410,13 @@ void DocData::generate(bool p_basic_types) { } List<String> constant_list; - ObjectTypeDB::get_integer_constant_list(name, &constant_list, true); + ClassDB::get_integer_constant_list(name, &constant_list, true); for(List<String>::Element *E=constant_list.front();E;E=E->next()) { ConstantDoc constant; constant.name=E->get(); - constant.value=itos(ObjectTypeDB::get_integer_constant(name, E->get())); + constant.value=itos(ClassDB::get_integer_constant(name, E->get())); c.constants.push_back(constant); } @@ -476,7 +503,7 @@ void DocData::generate(bool p_basic_types) { if (i==Variant::INPUT_EVENT) { static const char* ie_type[InputEvent::TYPE_MAX]={ - "","Key","MouseMotion","MouseButton","JoystickMotion","JoystickButton","ScreenTouch","ScreenDrag","Action" + "","Key","MouseMotion","MouseButton","JoypadMotion","JoypadButton","ScreenTouch","ScreenDrag","Action" }; cname+=ie_type[j]; } @@ -581,18 +608,18 @@ void DocData::generate(bool p_basic_types) { c.constants.push_back(cd); } - List<Globals::Singleton> singletons; - Globals::get_singleton()->get_singletons(&singletons); + List<GlobalConfig::Singleton> singletons; + GlobalConfig::get_singleton()->get_singletons(&singletons); //servers (this is kind of hackish) - for(List<Globals::Singleton>::Element *E=singletons.front();E;E=E->next()) { + for(List<GlobalConfig::Singleton>::Element *E=singletons.front();E;E=E->next()) { PropertyDoc pd; - Globals::Singleton &s=E->get(); + GlobalConfig::Singleton &s=E->get(); pd.name=s.name; - pd.type=s.ptr->get_type(); - while (String(ObjectTypeDB::type_inherits_from(pd.type))!="Object") - pd.type=ObjectTypeDB::type_inherits_from(pd.type); + pd.type=s.ptr->get_class(); + while (String(ClassDB::get_parent_class(pd.type))!="Object") + pd.type=ClassDB::get_parent_class(pd.type); if (pd.type.begins_with("_")) pd.type=pd.type.substr(1,pd.type.length()); c.properties.push_back(pd); @@ -777,7 +804,7 @@ Error DocData::_load(Ref<XMLParser> parser) { class_list[name]=ClassDoc(); ClassDoc& c = class_list[name]; -// print_line("class: "+name); + //print_line("class: "+name); c.name=name; if (parser->has_attribute("inherits")) c.inherits = parser->get_attribute_value("inherits"); @@ -825,6 +852,13 @@ Error DocData::_load(Ref<XMLParser> parser) { prop.name=parser->get_attribute_value("name"); ERR_FAIL_COND_V(!parser->has_attribute("type"),ERR_FILE_CORRUPT); prop.type=parser->get_attribute_value("type"); + if (parser->has_attribute("setter")) + prop.setter=parser->get_attribute_value("setter"); + if (parser->has_attribute("getter")) + prop.getter=parser->get_attribute_value("getter"); + if (parser->has_attribute("brief")) + prop.brief_description=parser->get_attribute_value("brief").xml_unescape(); + parser->read(); if (parser->get_node_type()==XMLParser::NODE_TEXT) prop.description=parser->get_node_data().strip_edges(); @@ -1009,7 +1043,7 @@ Error DocData::save(const String& p_path) { PropertyDoc &p=c.properties[i]; - _write_string(f,2,"<member name=\""+p.name+"\" type=\""+p.type+"\">"); + _write_string(f,2,"<member name=\""+p.name+"\" type=\""+p.type+"\" setter=\""+p.setter+"\" getter=\""+p.getter+"\" brief=\""+p.brief_description.xml_escape(true)+"\">"); if (p.description!="") _write_string(f,3,p.description.xml_escape()); _write_string(f,2,"</member>"); diff --git a/tools/doc/doc_data.h b/tools/doc/doc_data.h index 7996071c74..fead1da510 100644 --- a/tools/doc/doc_data.h +++ b/tools/doc/doc_data.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -66,7 +66,9 @@ public: String name; String type; + String brief_description; String description; + String setter,getter; bool operator<(const PropertyDoc& p_prop) const { return name<p_prop.name; } diff --git a/tools/doc/doc_dump.cpp b/tools/doc/doc_dump.cpp index fbf13f9e8f..5ebba596e9 100644 --- a/tools/doc/doc_dump.cpp +++ b/tools/doc/doc_dump.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,9 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "version.h" #include "doc_dump.h" + +#include "version.h" #include "os/file_access.h" #include "scene/main/node.h" @@ -77,7 +78,7 @@ void DocDump::dump(const String& p_file) { List<StringName> class_list; - ObjectTypeDB::get_type_list(&class_list); + ClassDB::get_class_list(&class_list); class_list.sort_custom<StringName::AlphCompare>(); @@ -92,10 +93,10 @@ void DocDump::dump(const String& p_file) { String name=class_list.front()->get(); String header="<class name=\""+name+"\""; - String inherits=ObjectTypeDB::type_inherits_from(name); + String inherits=ClassDB::get_parent_class(name); if (inherits!="") header+=" inherits=\""+inherits+"\""; - String category=ObjectTypeDB::get_category(name); + String category=ClassDB::get_category(name); if (category=="") category="Core"; header+=" category=\""+category+"\""; @@ -108,7 +109,7 @@ void DocDump::dump(const String& p_file) { _write_string(f,1,"<methods>"); List<MethodInfo> method_list; - ObjectTypeDB::get_method_list(name,&method_list,true); + ClassDB::get_method_list(name,&method_list,true); method_list.sort(); @@ -116,7 +117,7 @@ void DocDump::dump(const String& p_file) { if (E->get().name=="" || E->get().name[0]=='_') continue; //hiden - MethodBind *m = ObjectTypeDB::get_method(name,E->get().name); + MethodBind *m = ClassDB::get_method(name,E->get().name); String qualifiers; if (E->get().flags&METHOD_FLAG_CONST) @@ -187,15 +188,15 @@ void DocDump::dump(const String& p_file) { case Variant::VECTOR3: case Variant::PLANE: case Variant::QUAT: - case Variant::_AABB: //sorry naming convention fail :( not like it's used often // 10 - case Variant::MATRIX3: + case Variant::RECT3: //sorry naming convention fail :( not like it's used often // 10 + case Variant::BASIS: case Variant::COLOR: - case Variant::RAW_ARRAY: - case Variant::INT_ARRAY: - case Variant::REAL_ARRAY: - case Variant::STRING_ARRAY: //25 - case Variant::VECTOR3_ARRAY: - case Variant::COLOR_ARRAY: + case Variant::POOL_BYTE_ARRAY: + case Variant::POOL_INT_ARRAY: + case Variant::POOL_REAL_ARRAY: + case Variant::POOL_STRING_ARRAY: //25 + case Variant::POOL_VECTOR3_ARRAY: + case Variant::POOL_COLOR_ARRAY: default_arg_text=Variant::get_type_name(default_arg.get_type())+"("+default_arg_text+")"; break; case Variant::OBJECT: @@ -251,7 +252,7 @@ void DocDump::dump(const String& p_file) { _write_string(f,1,"</methods>"); List<MethodInfo> signal_list; - ObjectTypeDB::get_signal_list(name,&signal_list,true); + ClassDB::get_signal_list(name,&signal_list,true); if (signal_list.size()) { @@ -278,7 +279,7 @@ void DocDump::dump(const String& p_file) { List<String> constant_list; - ObjectTypeDB::get_integer_constant_list(name, &constant_list, true); + ClassDB::get_integer_constant_list(name, &constant_list, true); /* constants are sorted in a special way */ @@ -287,7 +288,7 @@ void DocDump::dump(const String& p_file) { for(List<String>::Element *E=constant_list.front();E;E=E->next()) { _ConstantSort cs; cs.name=E->get(); - cs.value=ObjectTypeDB::get_integer_constant(name, E->get()); + cs.value=ClassDB::get_integer_constant(name, E->get()); constant_sort.push_back(cs); } diff --git a/tools/doc/doc_dump.h b/tools/doc/doc_dump.h index 372f5e0969..84629b89c8 100644 --- a/tools/doc/doc_dump.h +++ b/tools/doc/doc_dump.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,7 +29,7 @@ #ifndef DOC_DUMP_H #define DOC_DUMP_H -#include "object_type_db.h" +#include "class_db.h" class DocDump { public: diff --git a/tools/editor/SCsub b/tools/editor/SCsub index f6cb16dc24..caf45d25be 100644 --- a/tools/editor/SCsub +++ b/tools/editor/SCsub @@ -3,86 +3,78 @@ Import('env') -def make_doc_header(target,source,env): - - src = source[0].srcnode().abspath - dst = target[0].srcnode().abspath - f = open(src,"rb") - g = open(dst,"wb") - buf = f.read() - decomp_size = len(buf) - import zlib - buf = zlib.compress(buf) - - - g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") - g.write("#ifndef _DOC_DATA_RAW_H\n") - g.write("#define _DOC_DATA_RAW_H\n") - g.write("static const int _doc_data_compressed_size="+str(len(buf))+";\n") - g.write("static const int _doc_data_uncompressed_size="+str(decomp_size)+";\n") - g.write("static const unsigned char _doc_data_compressed[]={\n") - for i in range(len(buf)): - g.write(str(ord(buf[i]))+",\n") - g.write("};\n") - g.write("#endif") - - - -def make_certs_header(target,source,env): - - src = source[0].srcnode().abspath - dst = target[0].srcnode().abspath - f = open(src,"rb") - g = open(dst,"wb") - buf = f.read() - decomp_size = len(buf) - import zlib - buf = zlib.compress(buf) - - - g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") - g.write("#ifndef _CERTS_RAW_H\n") - g.write("#define _CERTS_RAW_H\n") - g.write("static const int _certs_compressed_size="+str(len(buf))+";\n") - g.write("static const int _certs_uncompressed_size="+str(decomp_size)+";\n") - g.write("static const unsigned char _certs_compressed[]={\n") - for i in range(len(buf)): - g.write(str(ord(buf[i]))+",\n") - g.write("};\n") - g.write("#endif") - - - - - - - -if (env["tools"]=="yes"): - - reg_exporters_inc='#include "register_exporters.h"\n' - reg_exporters='void register_exporters() {\n' - for e in env.platform_exporters: - env.tool_sources.append("#platform/"+e+"/export/export.cpp") - reg_exporters+='\tregister_'+e+'_exporter();\n' - reg_exporters_inc+='#include "platform/'+e+'/export/export.h"\n' - reg_exporters+='}\n' - f = open("register_exporters.cpp","wb") - f.write(reg_exporters_inc) - f.write(reg_exporters) - f.close() - - env.Depends("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml") - env.Command("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml",make_doc_header) - - env.Depends("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt") - env.Command("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt",make_certs_header) - - #make_doc_header(env.File("#tools/editor/doc_data_raw.h").srcnode().abspath,env.File("#doc/base/classes.xml").srcnode().abspath,env) - - env.add_source_files(env.tool_sources,"*.cpp") - - Export('env') - SConscript('icons/SCsub'); - SConscript('plugins/SCsub'); - SConscript('fileserver/SCsub'); - SConscript('io_plugins/SCsub'); +def make_doc_header(target, source, env): + + src = source[0].srcnode().abspath + dst = target[0].srcnode().abspath + f = open(src, "rb") + g = open(dst, "wb") + buf = f.read() + decomp_size = len(buf) + import zlib + buf = zlib.compress(buf) + + g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") + g.write("#ifndef _DOC_DATA_RAW_H\n") + g.write("#define _DOC_DATA_RAW_H\n") + g.write("static const int _doc_data_compressed_size=" + str(len(buf)) + ";\n") + g.write("static const int _doc_data_uncompressed_size=" + str(decomp_size) + ";\n") + g.write("static const unsigned char _doc_data_compressed[]={\n") + for i in range(len(buf)): + g.write(str(ord(buf[i])) + ",\n") + g.write("};\n") + g.write("#endif") + + +def make_certs_header(target, source, env): + + src = source[0].srcnode().abspath + dst = target[0].srcnode().abspath + f = open(src, "rb") + g = open(dst, "wb") + buf = f.read() + decomp_size = len(buf) + import zlib + buf = zlib.compress(buf) + + g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n") + g.write("#ifndef _CERTS_RAW_H\n") + g.write("#define _CERTS_RAW_H\n") + g.write("static const int _certs_compressed_size=" + str(len(buf)) + ";\n") + g.write("static const int _certs_uncompressed_size=" + str(decomp_size) + ";\n") + g.write("static const unsigned char _certs_compressed[]={\n") + for i in range(len(buf)): + g.write(str(ord(buf[i])) + ",\n") + g.write("};\n") + g.write("#endif") + + +if (env["tools"] == "yes"): + + reg_exporters_inc = '#include "register_exporters.h"\n' + reg_exporters = 'void register_exporters() {\n' + for e in env.platform_exporters: + env.tool_sources.append("#platform/" + e + "/export/export.cpp") + reg_exporters += '\tregister_' + e + '_exporter();\n' + reg_exporters_inc += '#include "platform/' + e + '/export/export.h"\n' + reg_exporters += '}\n' + f = open("register_exporters.cpp", "wb") + f.write(reg_exporters_inc) + f.write(reg_exporters) + f.close() + + env.Depends("#tools/editor/doc_data_compressed.h", "#doc/base/classes.xml") + env.Command("#tools/editor/doc_data_compressed.h", "#doc/base/classes.xml", make_doc_header) + + env.Depends("#tools/editor/certs_compressed.h", "#tools/certs/ca-certificates.crt") + env.Command("#tools/editor/certs_compressed.h", "#tools/certs/ca-certificates.crt", make_certs_header) + + # make_doc_header(env.File("#tools/editor/doc_data_raw.h").srcnode().abspath,env.File("#doc/base/classes.xml").srcnode().abspath,env) + + env.add_source_files(env.tool_sources, "*.cpp") + + Export('env') + SConscript('icons/SCsub') + SConscript('plugins/SCsub') + SConscript('fileserver/SCsub') + SConscript('io_plugins/SCsub') diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp index a556031e5e..f256e351ae 100644 --- a/tools/editor/animation_editor.cpp +++ b/tools/editor/animation_editor.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "animation_editor.h" + #include "editor_settings.h" #include "os/keyboard.h" #include "os/os.h" @@ -48,7 +49,7 @@ class AnimationCurveEdit : public Control { - OBJ_TYPE( AnimationCurveEdit, Control ); + GDCLASS( AnimationCurveEdit, Control ); public: enum Mode { MODE_DISABLED, @@ -157,7 +158,7 @@ private: } } - void _input_event(const InputEvent& p_ev) { + void _gui_input(const InputEvent& p_ev) { if (p_ev.type==InputEvent::MOUSE_MOTION && p_ev.mouse_motion.button_mask&BUTTON_MASK_LEFT) { if (mode==MODE_DISABLED) @@ -178,12 +179,12 @@ private: bool sg = val < 0; val = Math::absf(val); - val = Math::log(val)/Math::log(2); + val = Math::log(val)/Math::log((float)2.0); //logspace val+=rel*0.05; // - val = Math::pow(2,val); + val = Math::pow((float)2.0,val); if (sg) val=-val; @@ -198,8 +199,8 @@ public: static void _bind_methods() { - // ObjectTypeDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj); - ObjectTypeDB::bind_method("_input_event",&AnimationCurveEdit::_input_event); + //ClassDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj); + ClassDB::bind_method("_gui_input",&AnimationCurveEdit::_gui_input); ADD_SIGNAL(MethodInfo("transition_changed")); } @@ -243,15 +244,15 @@ public: class AnimationKeyEdit : public Object { - OBJ_TYPE(AnimationKeyEdit,Object); + GDCLASS(AnimationKeyEdit,Object); public: bool setting; bool hidden; static void _bind_methods() { - ObjectTypeDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj); - ObjectTypeDB::bind_method("_key_ofs_changed",&AnimationKeyEdit::_key_ofs_changed); + ClassDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj); + ClassDB::bind_method("_key_ofs_changed",&AnimationKeyEdit::_key_ofs_changed); } //PopupDialog *ke_dialog; @@ -518,7 +519,7 @@ public: case Animation::TYPE_VALUE: { if (name=="value") { - r_ret = animation->track_get_key_value(track,key);; + r_ret = animation->track_get_key_value(track,key); return true; } @@ -612,7 +613,7 @@ public: if (res.is_valid()) { hint=PROPERTY_HINT_RESOURCE_TYPE; - hint_string=res->get_type(); + hint_string=res->get_class(); } } @@ -647,8 +648,10 @@ public: } break; } - //if (animation->track_get_type(track)!=Animation::TYPE_METHOD) - // p_list->push_back( PropertyInfo( Variant::REAL, "easing", PROPERTY_HINT_EXP_EASING)); + /* + if (animation->track_get_type(track)!=Animation::TYPE_METHOD) + p_list->push_back( PropertyInfo( Variant::REAL, "easing", PROPERTY_HINT_EXP_EASING)); + */ } UndoRedo *undo_redo; @@ -1040,7 +1043,7 @@ void AnimationKeyEditor::_animation_optimize() { - animation->optimize(optimize_linear_error->get_val(),optimize_angular_error->get_val(),optimize_max_angle->get_val()); + animation->optimize(optimize_linear_error->get_value(),optimize_angular_error->get_value(),optimize_max_angle->get_value()); track_editor->update(); undo_redo->clear_history(); @@ -1049,12 +1052,12 @@ void AnimationKeyEditor::_animation_optimize() { float AnimationKeyEditor::_get_zoom_scale() const { - float zv = zoom->get_val(); + float zv = zoom->get_value(); if (zv<1) { zv = 1.0-zv; - return Math::pow(1.0+zv,8.0)*100; + return Math::pow(1.0f+zv,8.0f)*100; } else { - return 1.0/Math::pow(zv,8.0)*100; + return 1.0/Math::pow(zv,8.0f)*100; } } @@ -1072,7 +1075,7 @@ void AnimationKeyEditor::_track_pos_draw() { int settings_limit = size.width - right_data_size_cache; int name_limit = settings_limit * name_column_ratio; - float keys_from= h_scroll->get_val(); + float keys_from= h_scroll->get_value(); float zoom_scale = _get_zoom_scale(); float keys_to=keys_from+(settings_limit-name_limit) / zoom_scale; @@ -1081,7 +1084,7 @@ void AnimationKeyEditor::_track_pos_draw() { //will move to separate control! (for speedup) if (timeline_pos >= keys_from && timeline_pos<keys_to) { //draw position - int pixel = (timeline_pos - h_scroll->get_val()) * zoom_scale; + int pixel = (timeline_pos - h_scroll->get_value()) * zoom_scale; pixel+=name_limit; track_pos->draw_line(ofs+Point2(pixel,0),ofs+Point2(pixel,size.height),Color(1,0.3,0.3,0.8)); @@ -1090,7 +1093,6 @@ void AnimationKeyEditor::_track_pos_draw() { void AnimationKeyEditor::_track_editor_draw() { - VisualServer::get_singleton()->canvas_item_set_clip(track_editor->get_canvas_item(),true); if (animation.is_valid() && animation->get_track_count()) { if (selected_track < 0) @@ -1157,6 +1159,12 @@ void AnimationKeyEditor::_track_editor_draw() { Ref<Texture> add_key_icon = get_icon("TrackAddKey","EditorIcons"); Ref<Texture> add_key_icon_hl = get_icon("TrackAddKeyHl","EditorIcons"); Ref<Texture> down_icon = get_icon("select_arrow","Tree"); + + Ref<Texture> wrap_icon[2]={ + get_icon("InterpWrapClamp","EditorIcons"), + get_icon("InterpWrapLoop","EditorIcons"), + }; + Ref<Texture> interp_icon[3]={ get_icon("InterpRaw","EditorIcons"), get_icon("InterpLinear","EditorIcons"), @@ -1181,7 +1189,7 @@ void AnimationKeyEditor::_track_editor_draw() { Ref<Texture> type_hover=get_icon("KeyHover","EditorIcons"); Ref<Texture> type_selected=get_icon("KeySelected","EditorIcons"); - int right_separator_ofs = down_icon->get_width() *2 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*7; + int right_separator_ofs = down_icon->get_width() *3 + add_key_icon->get_width() + interp_icon[0]->get_width() + wrap_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*9; int h = font->get_height()+sep; @@ -1227,8 +1235,8 @@ void AnimationKeyEditor::_track_editor_draw() { if (l<=0) l=0.001; //avoid crashor - int end_px = (l - h_scroll->get_val()) * scale; - int begin_px = -h_scroll->get_val() * scale; + int end_px = (l - h_scroll->get_value()) * scale; + int begin_px = -h_scroll->get_value() * scale; Color notimecol; notimecol.r=timecolor.gray(); notimecol.g=notimecol.r; @@ -1254,7 +1262,7 @@ void AnimationKeyEditor::_track_editor_draw() { - keys_from= h_scroll->get_val(); + keys_from= h_scroll->get_value(); keys_to=keys_from+zoomw / scale; { @@ -1331,8 +1339,8 @@ void AnimationKeyEditor::_track_editor_draw() { for(int i=0;i<zoomw;i++) { - float pos = h_scroll->get_val() + double(i)/scale; - float prev = h_scroll->get_val() + (double(i)-1.0)/scale; + float pos = h_scroll->get_value() + double(i)/scale; + float prev = h_scroll->get_value() + (double(i)-1.0)/scale; int sc = int(Math::floor(pos*SC_ADJ)); @@ -1356,7 +1364,7 @@ void AnimationKeyEditor::_track_editor_draw() { //this code sucks, i always forget how it works - int idx = v_scroll->get_val() + i; + int idx = v_scroll->get_value() + i; if (idx>=animation->get_track_count()) break; int y = h+i*h+sep; @@ -1421,6 +1429,20 @@ void AnimationKeyEditor::_track_editor_draw() { icon_ofs.x-=hsep; */ + track_ofs[0]=size.width-icon_ofs.x; + icon_ofs.x-=down_icon->get_width(); + te->draw_texture(down_icon,icon_ofs); + + int wrap_type = animation->track_get_interpolation_loop_wrap(idx)?1:0; + icon_ofs.x-=hsep; + icon_ofs.x-=wrap_icon[wrap_type]->get_width(); + te->draw_texture(wrap_icon[wrap_type],icon_ofs); + + icon_ofs.x-=hsep; + te->draw_line(Point2(icon_ofs.x,ofs.y+y),Point2(icon_ofs.x,ofs.y+y+h),sepcolor); + + track_ofs[1]=size.width-icon_ofs.x; + icon_ofs.x-=down_icon->get_width(); te->draw_texture(down_icon,icon_ofs); @@ -1433,6 +1455,8 @@ void AnimationKeyEditor::_track_editor_draw() { icon_ofs.x-=hsep; te->draw_line(Point2(icon_ofs.x,ofs.y+y),Point2(icon_ofs.x,ofs.y+y+h),sepcolor); + track_ofs[2]=size.width-icon_ofs.x; + if (animation->track_get_type(idx)==Animation::TYPE_VALUE) { @@ -1453,14 +1477,18 @@ void AnimationKeyEditor::_track_editor_draw() { icon_ofs.x-=hsep; te->draw_line(Point2(icon_ofs.x,ofs.y+y),Point2(icon_ofs.x,ofs.y+y+h),sepcolor); + track_ofs[3]=size.width-icon_ofs.x; + icon_ofs.x-=hsep; icon_ofs.x-=add_key_icon->get_width(); te->draw_texture((mouse_over.over==MouseOver::OVER_ADD_KEY && mouse_over.track==idx)?add_key_icon_hl:add_key_icon,icon_ofs); + track_ofs[4]=size.width-icon_ofs.x; + //draw the keys; int tt = animation->track_get_type(idx); - float key_vofs = Math::floor((h - type_icon[tt]->get_height())/2); - float key_hofs = -Math::floor(type_icon[tt]->get_height()/2); + float key_vofs = Math::floor((float)(h - type_icon[tt]->get_height())/2); + float key_hofs = -Math::floor((float)type_icon[tt]->get_height()/2); int kc=animation->track_get_key_count(idx); bool first=true; @@ -1552,20 +1580,20 @@ void AnimationKeyEditor::_track_editor_draw() { } float motion = from_t+(click.to.x - click.at.x)/zoom_scale; - if (step->get_val()) - motion = Math::stepify(motion,step->get_val()); + if (step->get_value()) + motion = Math::stepify(motion,step->get_value()); for(Map<SelectedKey,KeyInfo>::Element *E=selection.front();E;E=E->next()) { int idx = E->key().track; - int i = idx-v_scroll->get_val(); + int i = idx-v_scroll->get_value(); if (i<0 || i>=fit) continue; int y = h+i*h+sep; - float key_vofs = Math::floor((h - type_selected->get_height())/2); - float key_hofs = -Math::floor(type_selected->get_height()/2); + float key_vofs = Math::floor((float)(h - type_selected->get_height())/2); + float key_hofs = -Math::floor((float)type_selected->get_height()/2); float time = animation->track_get_key_time(idx,E->key().key); float diff = time-from_t; @@ -1621,6 +1649,14 @@ void AnimationKeyEditor::_track_menu_selected(int p_idx) { undo_redo->add_do_method(animation.ptr(),"value_track_set_update_mode",cont_editing,p_idx); undo_redo->add_undo_method(animation.ptr(),"value_track_set_update_mode",cont_editing,animation->value_track_get_update_mode(cont_editing)); undo_redo->commit_action(); + } else if (wrap_editing!=-1) { + + ERR_FAIL_INDEX(wrap_editing,animation->get_track_count()); + + undo_redo->create_action(TTR("Anim Track Change Wrap Mode")); + undo_redo->add_do_method(animation.ptr(),"track_set_interpolation_loop_wrap",wrap_editing,p_idx?true:false); + undo_redo->add_undo_method(animation.ptr(),"track_set_interpolation_loop_wrap",wrap_editing,animation->track_get_interpolation_loop_wrap(wrap_editing)); + undo_redo->commit_action(); } else { switch (p_idx) { @@ -1811,7 +1847,7 @@ void AnimationKeyEditor::_anim_delete_keys() { } } -void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { +void AnimationKeyEditor::_track_editor_gui_input(const InputEvent& p_input) { Control *te=track_editor; Ref<StyleBox> style = get_stylebox("normal","TextEdit"); @@ -1833,6 +1869,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { Ref<Texture> hsize_icon = get_icon("Hsize","EditorIcons"); Ref<Texture> add_key_icon = get_icon("TrackAddKey","EditorIcons"); + Ref<Texture> wrap_icon[2]={ + get_icon("InterpWrapClamp","EditorIcons"), + get_icon("InterpWrapLoop","EditorIcons"), + }; Ref<Texture> interp_icon[3]={ get_icon("InterpRaw","EditorIcons"), get_icon("InterpLinear","EditorIcons"), @@ -1848,7 +1888,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { get_icon("KeyXform","EditorIcons"), get_icon("KeyCall","EditorIcons") }; - int right_separator_ofs = down_icon->get_width() *2 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*7; + int right_separator_ofs = down_icon->get_width() *3 + add_key_icon->get_width() + interp_icon[0]->get_width() + wrap_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*9; int h = font->get_height()+sep; @@ -1877,7 +1917,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { else _menu_track(TRACK_MENU_DUPLICATE); - accept_event();; + accept_event(); } else if (p_input.key.scancode==KEY_DELETE && p_input.key.pressed && click.click==ClickOver::CLICK_NONE) { @@ -1888,16 +1928,16 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { if (p_input.is_action("ui_up")) selected_track--; - if (v_scroll->is_visible() && p_input.is_action("ui_page_up")) + if (v_scroll->is_visible_in_tree() && p_input.is_action("ui_page_up")) selected_track--; if (selected_track<0) selected_track=0; - if (v_scroll->is_visible()) { - if (v_scroll->get_val() > selected_track) - v_scroll->set_val(selected_track); + if (v_scroll->is_visible_in_tree()) { + if (v_scroll->get_value() > selected_track) + v_scroll->set_value(selected_track); } @@ -1910,14 +1950,14 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { if (p_input.is_action("ui_down")) selected_track++; - else if (v_scroll->is_visible() && p_input.is_action("ui_page_down")) + else if (v_scroll->is_visible_in_tree() && p_input.is_action("ui_page_down")) selected_track+=v_scroll->get_page(); if (selected_track >= animation->get_track_count()) selected_track=animation->get_track_count()-1; - if (v_scroll->is_visible() && v_scroll->get_page()+v_scroll->get_val() < selected_track+1) { - v_scroll->set_val(selected_track-v_scroll->get_page()+1); + if (v_scroll->is_visible_in_tree() && v_scroll->get_page()+v_scroll->get_value() < selected_track+1) { + v_scroll->set_value(selected_track-v_scroll->get_page()+1); } track_editor->update(); @@ -1934,18 +1974,18 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) { if (mb.mod.command) { - zoom->set_val(zoom->get_val() + zoom->get_step()); + zoom->set_value(zoom->get_value() + zoom->get_step()); } else { - v_scroll->set_val( v_scroll->get_val() - v_scroll->get_page() / 8 ); + v_scroll->set_value( v_scroll->get_value() - v_scroll->get_page() / 8 ); } } if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed) { if (mb.mod.command) { - zoom->set_val(zoom->get_val() - zoom->get_step()); + zoom->set_value(zoom->get_value() - zoom->get_step()); } else { - v_scroll->set_val( v_scroll->get_val() + v_scroll->get_page() / 8 ); + v_scroll->set_value( v_scroll->get_value() + v_scroll->get_page() / 8 ); } } @@ -1966,7 +2006,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { mpos.y -= h; int idx = mpos.y / h; - idx+=v_scroll->get_val(); + idx+=v_scroll->get_value(); if (idx <0 || idx>=animation->get_track_count()) break; @@ -1974,7 +2014,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { } else if (mpos.x < settings_limit) { float pos = mpos.x - name_limit; pos/=_get_zoom_scale(); - pos+=h_scroll->get_val(); + pos+=h_scroll->get_value(); float w_time = (type_icon[0]->get_width() / _get_zoom_scale())/2.0; int kidx = animation->track_find_key(idx,pos); @@ -2054,6 +2094,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { interp_editing=-1; cont_editing=-1; + wrap_editing=-1; track_menu->popup(); } @@ -2083,7 +2124,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { //seek //int zoomw = settings_limit-name_limit; float scale = _get_zoom_scale(); - float pos = h_scroll->get_val() + (mpos.x-name_limit) / scale; + float pos = h_scroll->get_value() + (mpos.x-name_limit) / scale; if (animation->get_step()) pos=Math::stepify(pos,animation->get_step()); @@ -2105,7 +2146,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { mpos.y -= h; int idx = mpos.y / h; - idx+=v_scroll->get_val(); + idx+=v_scroll->get_value(); if (idx <0) break; @@ -2146,7 +2187,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { float pos = mpos.x - name_limit; pos/=_get_zoom_scale(); - pos+=h_scroll->get_val(); + pos+=h_scroll->get_value(); float w_time = (type_icon[0]->get_width() / _get_zoom_scale())/2.0; int kidx = animation->track_find_key(idx,pos); @@ -2277,7 +2318,33 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { ofsx-=hsep*3+move_up_icon->get_width(); */ - if (ofsx < down_icon->get_width() + interp_icon[0]->get_width() + hsep*2) { + + if (ofsx < track_ofs[1]) { + + track_menu->clear(); + track_menu->set_size(Point2(1,1)); + static const char *interp_name[2]={"Clamp Loop Interp","Wrap Loop Interp"}; + for(int i=0;i<2;i++) { + track_menu->add_icon_item(wrap_icon[i],interp_name[i]); + } + + int popup_y = ofs.y+((int(mpos.y)/h)+2)*h; + int popup_x = size.width-track_ofs[1]; + + track_menu->set_pos(te->get_global_pos()+Point2(popup_x,popup_y)); + + + wrap_editing=idx; + interp_editing=-1; + cont_editing=-1; + + track_menu->popup(); + + return; + } + + + if (ofsx < track_ofs[2]) { track_menu->clear(); track_menu->set_size(Point2(1,1)); @@ -2286,24 +2353,22 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { track_menu->add_icon_item(interp_icon[i],interp_name[i]); } - int lofs = remove_icon->get_width() + move_up_icon->get_width() + move_down_icon->get_width() + down_icon->get_width() *2 + hsep*7;//interp_icon[0]->get_width() + cont_icon[0]->get_width() ; int popup_y = ofs.y+((int(mpos.y)/h)+2)*h; - int popup_x = ofs.x+size.width-lofs; + int popup_x = size.width-track_ofs[2]; track_menu->set_pos(te->get_global_pos()+Point2(popup_x,popup_y)); interp_editing=idx; cont_editing=-1; + wrap_editing=-1; track_menu->popup(); return; } - ofsx-=hsep*2+interp_icon[0]->get_width()+down_icon->get_width(); - - if (ofsx < down_icon->get_width() + cont_icon[0]->get_width()) { + if (ofsx < track_ofs[3]) { track_menu->clear(); track_menu->set_size(Point2(1,1)); @@ -2312,13 +2377,14 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { track_menu->add_icon_item(cont_icon[i],cont_name[i]); } - int lofs = settings_limit; + int popup_y = ofs.y+((int(mpos.y)/h)+2)*h; - int popup_x = ofs.x+lofs; + int popup_x = size.width-track_ofs[3]; track_menu->set_pos(te->get_global_pos()+Point2(popup_x,popup_y)); interp_editing=-1; + wrap_editing=-1; cont_editing=idx; track_menu->popup(); @@ -2326,9 +2392,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { return; } - ofsx-=hsep*3+cont_icon[0]->get_width()+down_icon->get_width(); - - if (ofsx < add_key_icon->get_width()) { + if (ofsx < track_ofs[4]) { Animation::TrackType tt = animation->track_get_type(idx); @@ -2403,7 +2467,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { float zoom_scale=_get_zoom_scale(); - float keys_from = h_scroll->get_val(); + float keys_from = h_scroll->get_value(); float keys_to = keys_from + (settings_limit-name_limit) / zoom_scale; float from_time = keys_from + ( click.at.x - (name_limit+ofs.x)) / zoom_scale; @@ -2423,8 +2487,8 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { to_time = keys_to; - int from_track = int(click.at.y-ofs.y-h-sep) / h + v_scroll->get_val(); - int to_track = int(click.to.y-ofs.y-h-sep) / h + v_scroll->get_val(); + int from_track = int(click.at.y-ofs.y-h-sep) / h + v_scroll->get_value(); + int to_track = int(click.to.y-ofs.y-h-sep) / h + v_scroll->get_value(); int from_mod = int(click.at.y-ofs.y-sep) % h; int to_mod = int(click.to.y-ofs.y-sep) % h; @@ -2452,8 +2516,8 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { break; } - int tracks_from = v_scroll->get_val(); - int tracks_to = v_scroll->get_val()+fit-1; + int tracks_from = v_scroll->get_value(); + int tracks_to = v_scroll->get_value()+fit-1; if (tracks_to>=animation->get_track_count()) tracks_to=animation->get_track_count()-1; @@ -2536,8 +2600,8 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { } float motion = from_t+(click.to.x - click.at.x)/_get_zoom_scale(); - if (step->get_val()) - motion = Math::stepify(motion,step->get_val()); + if (step->get_value()) + motion = Math::stepify(motion,step->get_value()); @@ -2580,8 +2644,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { for(Map<SelectedKey,KeyInfo>::Element *E=selection.back();E;E=E->prev()) { float newpos=E->get().pos-from_t+motion; - //if (newpos<0) - // continue; //no add at the begining + /* + if (newpos<0) + continue; //no add at the begining + */ undo_redo->add_do_method(animation.ptr(),"track_insert_key",E->key().track,newpos,animation->track_get_key_value(E->key().track,E->key().key),animation->track_get_key_transition(E->key().track,E->key().key)); } @@ -2590,8 +2656,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { for(Map<SelectedKey,KeyInfo>::Element *E=selection.back();E;E=E->prev()) { float newpos=E->get().pos+-from_t+motion; - //if (newpos<0) - // continue; //no remove what no inserted + /* + if (newpos<0) + continue; //no remove what no inserted + */ undo_redo->add_undo_method(animation.ptr(),"track_remove_key_at_pos",E->key().track,newpos); } @@ -2629,7 +2697,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { float oldpos=E->get().pos; float newpos=oldpos-from_t+motion; //if (newpos>=0) - undo_redo->add_do_method(this,"_select_at_anim",animation,E->key().track,newpos); + undo_redo->add_do_method(this,"_select_at_anim",animation,E->key().track,newpos); undo_redo->add_undo_method(this,"_select_at_anim",animation,E->key().track,oldpos); } @@ -2700,7 +2768,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { //int zoomw = settings_limit-name_limit; float scale = _get_zoom_scale(); - float pos = h_scroll->get_val() + (mpos.x-name_limit) / scale; + float pos = h_scroll->get_value() + (mpos.x-name_limit) / scale; if (animation->get_step()) { pos=Math::stepify(pos,animation->get_step()); @@ -2710,10 +2778,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { if (pos>=animation->get_length()) pos=animation->get_length(); - if (pos < h_scroll->get_val()) { - h_scroll->set_val(pos); - } else if (pos > h_scroll->get_val() + (settings_limit - name_limit) / scale) { - h_scroll->set_val( pos - (settings_limit - name_limit) / scale ); + if (pos < h_scroll->get_value()) { + h_scroll->set_value(pos); + } else if (pos > h_scroll->get_value() + (settings_limit - name_limit) / scale) { + h_scroll->set_value( pos - (settings_limit - name_limit) / scale ); } timeline_pos=pos; @@ -2727,18 +2795,18 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { click.to=Point2(mb.x,mb.y); if (click.to.y<h && click.at.y>h && mb.relative_y<0) { - float prev = v_scroll->get_val(); - v_scroll->set_val( v_scroll->get_val() -1 ); - if (prev!=v_scroll->get_val()) + float prev = v_scroll->get_value(); + v_scroll->set_value( v_scroll->get_value() -1 ); + if (prev!=v_scroll->get_value()) click.at.y+=h; } if (click.to.y>size.height && click.at.y<size.height && mb.relative_y>0) { - float prev = v_scroll->get_val(); - v_scroll->set_val( v_scroll->get_val() +1 ); - if (prev!=v_scroll->get_val()) + float prev = v_scroll->get_value(); + v_scroll->set_value( v_scroll->get_value() +1 ); + if (prev!=v_scroll->get_value()) click.at.y-=h; } @@ -2755,7 +2823,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { int rel = mb.relative_x; float relf = rel / _get_zoom_scale(); - h_scroll->set_val( h_scroll->get_val() - relf ); + h_scroll->set_value( h_scroll->get_value() - relf ); } if (mb.button_mask==0) { @@ -2781,7 +2849,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { mpos.y -= h; int idx = mpos.y / h; - idx+=v_scroll->get_val(); + idx+=v_scroll->get_value(); if (idx <0 || idx>=animation->get_track_count()) break; @@ -2797,7 +2865,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { float pos = mpos.x - name_limit; pos/=_get_zoom_scale(); - pos+=h_scroll->get_val(); + pos+=h_scroll->get_value(); float w_time = (type_icon[0]->get_width() / _get_zoom_scale())/2.0; int kidx = animation->track_find_key(idx,pos); @@ -2850,7 +2918,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { } break; case Animation::TYPE_VALUE: { - Variant v = animation->track_get_key_value(idx,mouse_over.over_key);; + Variant v = animation->track_get_key_value(idx,mouse_over.over_key); //text+="value: "+String(v)+"\n"; bool prop_exists=false; @@ -2940,7 +3008,15 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) { */ - if (ofsx < down_icon->get_width() + interp_icon[0]->get_width() + hsep*2) { + if (ofsx < down_icon->get_width() + wrap_icon[0]->get_width() + hsep*3) { + + mouse_over.over=MouseOver::OVER_WRAP; + return; + } + + ofsx-=hsep*3+wrap_icon[0]->get_width() + down_icon->get_width(); + + if (ofsx < down_icon->get_width() + interp_icon[0]->get_width() + hsep*3) { mouse_over.over=MouseOver::OVER_INTERP; return; @@ -3012,7 +3088,7 @@ void AnimationKeyEditor::_notification(int p_what) { tpp->add_item(TTR("In-Out"),TRACK_MENU_SET_ALL_TRANS_INOUT); tpp->add_item(TTR("Out-In"),TRACK_MENU_SET_ALL_TRANS_OUTIN); tpp->set_name(TTR("Transitions")); - tpp->connect("item_pressed",this,"_menu_track"); + tpp->connect("id_pressed",this,"_menu_track"); optimize_dialog->connect("confirmed",this,"_animation_optimize"); menu_track->get_popup()->add_child(tpp); @@ -3068,13 +3144,18 @@ void AnimationKeyEditor::_notification(int p_what) { get_icon("TrackTrigger","EditorIcons") }; + Ref<Texture> wrap_icon[2]={ + get_icon("InterpWrapClamp","EditorIcons"), + get_icon("InterpWrapLoop","EditorIcons"), + }; + //right_data_size_cache = remove_icon->get_width() + move_up_icon->get_width() + move_down_icon->get_width() + down_icon->get_width() *2 + interp_icon[0]->get_width() + cont_icon[0]->get_width() + add_key_icon->get_width() + hsep*11; - right_data_size_cache = down_icon->get_width() *2 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*7; + right_data_size_cache = down_icon->get_width() *3 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + wrap_icon[0]->get_width() + hsep*8; } call_select->connect("selected",this,"_add_call_track"); -// rename_anim->set_icon( get_icon("Rename","EditorIcons") ); + //rename_anim->set_icon( get_icon("Rename","EditorIcons") ); /* edit_anim->set_icon( get_icon("Edit","EditorIcons") ); blend_anim->set_icon( get_icon("Blend","EditorIcons") ); @@ -3082,8 +3163,8 @@ void AnimationKeyEditor::_notification(int p_what) { stop->set_icon( get_icon("Stop","EditorIcons") ); pause->set_icon( get_icon("Pause","EditorIcons") ); */ -// menu->set_icon(get_icon("Animation","EditorIcons")); -// play->set_icon(get_icon("AnimationPlay","EditorIcons")); + //menu->set_icon(get_icon("Animation","EditorIcons")); + //play->set_icon(get_icon("AnimationPlay","EditorIcons")); //menu->set_icon(get_icon("Animation","EditorIcons")); _update_menu(); @@ -3112,8 +3193,8 @@ void AnimationKeyEditor::_update_paths() { //timeline->set_max(animation->get_length()); //timeline->set_step(0.01); track_editor->update(); - length->set_val(animation->get_length()); - step->set_val(animation->get_step()); + length->set_value(animation->get_length()); + step->set_value(animation->get_step()); } } @@ -3130,9 +3211,9 @@ void AnimationKeyEditor::_update_menu() { if (animation.is_valid()) { - length->set_val(animation->get_length()); + length->set_value(animation->get_length()); loop->set_pressed(animation->has_loop()); - step->set_val(animation->get_step()); + step->set_value(animation->get_step()); } track_editor->update(); @@ -3174,12 +3255,12 @@ void AnimationKeyEditor::set_animation(const Ref<Animation>& p_anim) { void AnimationKeyEditor::set_root(Node *p_root) { if (root) - root->disconnect("exit_tree",this,"_root_removed"); + root->disconnect("tree_exited",this,"_root_removed"); root=p_root; if (root) - root->connect("exit_tree",this,"_root_removed",make_binds(),CONNECT_ONESHOT); + root->connect("tree_exited",this,"_root_removed",make_binds(),CONNECT_ONESHOT); } @@ -3196,7 +3277,7 @@ Node *AnimationKeyEditor::get_root() const { void AnimationKeyEditor::update_keying() { - bool keying_enabled=is_visible() && animation.is_valid(); + bool keying_enabled=is_visible_in_tree() && animation.is_valid(); if (keying_enabled==keying) return; @@ -3215,14 +3296,14 @@ bool AnimationKeyEditor::has_keying() const { void AnimationKeyEditor::_query_insert(const InsertData& p_id) { - if (insert_frame!=OS::get_singleton()->get_frames_drawn()) { + if (insert_frame!=Engine::get_singleton()->get_frames_drawn()) { //clear insert list for the frame if frame changed - if (insert_confirm->is_visible()) + if (insert_confirm->is_visible_in_tree()) return; //do nothing insert_data.clear(); insert_query=false; } - insert_frame=OS::get_singleton()->get_frames_drawn(); + insert_frame=Engine::get_singleton()->get_frames_drawn(); for (List<InsertData>::Element *E=insert_data.front();E;E=E->next()) { //prevent insertion of multiple tracks @@ -3233,7 +3314,7 @@ void AnimationKeyEditor::_query_insert(const InsertData& p_id) { insert_data.push_back(p_id); if (p_id.track_idx==-1) { - if (bool(EDITOR_DEF("animation/confirm_insert_track",true))) { + if (bool(EDITOR_DEF("editors/animation/confirm_insert_track",true))) { //potential new key, does not exist if (insert_data.size()==1) insert_confirm->set_text(vformat(TTR("Create NEW track for %s and insert key?"),p_id.query)); @@ -3451,7 +3532,7 @@ int AnimationKeyEditor::_confirm_insert(InsertData p_id,int p_last_track) { h.type==Variant::VECTOR2 || h.type==Variant::RECT2 || h.type==Variant::VECTOR3 || - h.type==Variant::_AABB || + h.type==Variant::RECT3 || h.type==Variant::QUAT || h.type==Variant::COLOR || h.type==Variant::TRANSFORM ) { @@ -3626,7 +3707,7 @@ void AnimationKeyEditor::_pane_drag(const Point2& p_delta) { ecs.y-=p_delta.y; if (ecs.y<100) ecs.y=100; - ec->set_custom_minimum_size(ecs);; + ec->set_custom_minimum_size(ecs); } @@ -3710,7 +3791,7 @@ void AnimationKeyEditor::_scale() { } - float s = scale->get_val(); + float s = scale->get_value(); if (s==0) { ERR_PRINT("Can't scale to 0"); } @@ -3841,48 +3922,48 @@ void AnimationKeyEditor::cleanup() { void AnimationKeyEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_root_removed"),&AnimationKeyEditor::_root_removed); - ObjectTypeDB::bind_method(_MD("_scale"),&AnimationKeyEditor::_scale); - ObjectTypeDB::bind_method(_MD("set_root"),&AnimationKeyEditor::set_root); + ClassDB::bind_method(_MD("_root_removed"),&AnimationKeyEditor::_root_removed); + ClassDB::bind_method(_MD("_scale"),&AnimationKeyEditor::_scale); + ClassDB::bind_method(_MD("set_root"),&AnimationKeyEditor::set_root); -// ObjectTypeDB::bind_method(_MD("_confirm_insert"),&AnimationKeyEditor::_confirm_insert); - ObjectTypeDB::bind_method(_MD("_confirm_insert_list"),&AnimationKeyEditor::_confirm_insert_list); + //ClassDB::bind_method(_MD("_confirm_insert"),&AnimationKeyEditor::_confirm_insert); + ClassDB::bind_method(_MD("_confirm_insert_list"),&AnimationKeyEditor::_confirm_insert_list); - ObjectTypeDB::bind_method(_MD("_update_paths"),&AnimationKeyEditor::_update_paths); - ObjectTypeDB::bind_method(_MD("_track_editor_draw"),&AnimationKeyEditor::_track_editor_draw); + ClassDB::bind_method(_MD("_update_paths"),&AnimationKeyEditor::_update_paths); + ClassDB::bind_method(_MD("_track_editor_draw"),&AnimationKeyEditor::_track_editor_draw); - ObjectTypeDB::bind_method(_MD("_animation_changed"),&AnimationKeyEditor::_animation_changed); - ObjectTypeDB::bind_method(_MD("_scroll_changed"),&AnimationKeyEditor::_scroll_changed); - ObjectTypeDB::bind_method(_MD("_track_editor_input_event"),&AnimationKeyEditor::_track_editor_input_event); - ObjectTypeDB::bind_method(_MD("_track_name_changed"),&AnimationKeyEditor::_track_name_changed); - ObjectTypeDB::bind_method(_MD("_track_menu_selected"),&AnimationKeyEditor::_track_menu_selected); - ObjectTypeDB::bind_method(_MD("_menu_add_track"),&AnimationKeyEditor::_menu_add_track); - ObjectTypeDB::bind_method(_MD("_menu_track"),&AnimationKeyEditor::_menu_track); - ObjectTypeDB::bind_method(_MD("_clear_selection_for_anim"),&AnimationKeyEditor::_clear_selection_for_anim); - ObjectTypeDB::bind_method(_MD("_select_at_anim"),&AnimationKeyEditor::_select_at_anim); - ObjectTypeDB::bind_method(_MD("_track_pos_draw"),&AnimationKeyEditor::_track_pos_draw); - ObjectTypeDB::bind_method(_MD("_insert_delay"),&AnimationKeyEditor::_insert_delay); - ObjectTypeDB::bind_method(_MD("_step_changed"),&AnimationKeyEditor::_step_changed); + ClassDB::bind_method(_MD("_animation_changed"),&AnimationKeyEditor::_animation_changed); + ClassDB::bind_method(_MD("_scroll_changed"),&AnimationKeyEditor::_scroll_changed); + ClassDB::bind_method(_MD("_track_editor_gui_input"),&AnimationKeyEditor::_track_editor_gui_input); + ClassDB::bind_method(_MD("_track_name_changed"),&AnimationKeyEditor::_track_name_changed); + ClassDB::bind_method(_MD("_track_menu_selected"),&AnimationKeyEditor::_track_menu_selected); + ClassDB::bind_method(_MD("_menu_add_track"),&AnimationKeyEditor::_menu_add_track); + ClassDB::bind_method(_MD("_menu_track"),&AnimationKeyEditor::_menu_track); + ClassDB::bind_method(_MD("_clear_selection_for_anim"),&AnimationKeyEditor::_clear_selection_for_anim); + ClassDB::bind_method(_MD("_select_at_anim"),&AnimationKeyEditor::_select_at_anim); + ClassDB::bind_method(_MD("_track_pos_draw"),&AnimationKeyEditor::_track_pos_draw); + ClassDB::bind_method(_MD("_insert_delay"),&AnimationKeyEditor::_insert_delay); + ClassDB::bind_method(_MD("_step_changed"),&AnimationKeyEditor::_step_changed); - ObjectTypeDB::bind_method(_MD("_animation_loop_changed"),&AnimationKeyEditor::_animation_loop_changed); - ObjectTypeDB::bind_method(_MD("_animation_len_changed"),&AnimationKeyEditor::_animation_len_changed); - ObjectTypeDB::bind_method(_MD("_create_value_item"),&AnimationKeyEditor::_create_value_item); - ObjectTypeDB::bind_method(_MD("_pane_drag"),&AnimationKeyEditor::_pane_drag); + ClassDB::bind_method(_MD("_animation_loop_changed"),&AnimationKeyEditor::_animation_loop_changed); + ClassDB::bind_method(_MD("_animation_len_changed"),&AnimationKeyEditor::_animation_len_changed); + ClassDB::bind_method(_MD("_create_value_item"),&AnimationKeyEditor::_create_value_item); + ClassDB::bind_method(_MD("_pane_drag"),&AnimationKeyEditor::_pane_drag); - ObjectTypeDB::bind_method(_MD("_animation_len_update"),&AnimationKeyEditor::_animation_len_update); + ClassDB::bind_method(_MD("_animation_len_update"),&AnimationKeyEditor::_animation_len_update); - ObjectTypeDB::bind_method(_MD("set_animation"),&AnimationKeyEditor::set_animation); - ObjectTypeDB::bind_method(_MD("_animation_optimize"),&AnimationKeyEditor::_animation_optimize); - ObjectTypeDB::bind_method(_MD("_curve_transition_changed"),&AnimationKeyEditor::_curve_transition_changed); - ObjectTypeDB::bind_method(_MD("_toggle_edit_curves"),&AnimationKeyEditor::_toggle_edit_curves); - ObjectTypeDB::bind_method(_MD("_add_call_track"),&AnimationKeyEditor::_add_call_track); + ClassDB::bind_method(_MD("set_animation"),&AnimationKeyEditor::set_animation); + ClassDB::bind_method(_MD("_animation_optimize"),&AnimationKeyEditor::_animation_optimize); + ClassDB::bind_method(_MD("_curve_transition_changed"),&AnimationKeyEditor::_curve_transition_changed); + ClassDB::bind_method(_MD("_toggle_edit_curves"),&AnimationKeyEditor::_toggle_edit_curves); + ClassDB::bind_method(_MD("_add_call_track"),&AnimationKeyEditor::_add_call_track); ADD_SIGNAL( MethodInfo("resource_selected", PropertyInfo( Variant::OBJECT, "res"),PropertyInfo( Variant::STRING, "prop") ) ); @@ -3914,7 +3995,7 @@ AnimationKeyEditor::AnimationKeyEditor() { h_scroll = memnew( HScrollBar ); h_scroll->connect("value_changed",this,"_scroll_changed"); add_child(h_scroll); - h_scroll->set_val(0); + h_scroll->set_value(0); HBoxContainer *hb = memnew( HBoxContainer ); @@ -3927,7 +4008,7 @@ AnimationKeyEditor::AnimationKeyEditor() { //menu->set_pos(Point2()); //add_child(menu); - zoomicon = memnew( TextureFrame ); + zoomicon = memnew( TextureRect ); hb->add_child(zoomicon); zoomicon->set_tooltip(TTR("Animation zoom.")); @@ -3936,7 +4017,7 @@ AnimationKeyEditor::AnimationKeyEditor() { zoom->set_step(0.01); zoom->set_min(0.0); zoom->set_max(2.0); - zoom->set_val(1.0); + zoom->set_value(1.0); zoom->set_h_size_flags(SIZE_EXPAND_FILL); zoom->set_stretch_ratio(2); hb->add_child(zoom); @@ -3968,7 +4049,7 @@ AnimationKeyEditor::AnimationKeyEditor() { step->set_min(0.00); step->set_max(128); step->set_step(0.01); - step->set_val(0.0); + step->set_value(0.0); step->set_h_size_flags(SIZE_EXPAND_FILL); step->set_stretch_ratio(1); step->set_tooltip(TTR("Cursor step snap (in seconds).")); @@ -3986,7 +4067,7 @@ AnimationKeyEditor::AnimationKeyEditor() { menu_add_track = memnew( MenuButton ); hb->add_child(menu_add_track); - menu_add_track->get_popup()->connect("item_pressed",this,"_menu_add_track"); + menu_add_track->get_popup()->connect("id_pressed",this,"_menu_add_track"); menu_add_track->set_tooltip(TTR("Add new tracks.")); move_up_button = memnew( ToolButton ); @@ -4014,7 +4095,7 @@ AnimationKeyEditor::AnimationKeyEditor() { menu_track = memnew( MenuButton ); hb->add_child(menu_track); - menu_track->get_popup()->connect("item_pressed",this,"_menu_track"); + menu_track->get_popup()->connect("id_pressed",this,"_menu_track"); menu_track->set_tooltip(TTR("Track tools")); edit_button = memnew( ToolButton ); @@ -4030,18 +4111,18 @@ AnimationKeyEditor::AnimationKeyEditor() { optimize_dialog->set_title(TTR("Anim. Optimizer")); VBoxContainer *optimize_vb = memnew( VBoxContainer ); optimize_dialog->add_child(optimize_vb); - optimize_dialog->set_child_rect(optimize_vb); + optimize_linear_error = memnew( SpinBox ); optimize_linear_error->set_max(1.0); optimize_linear_error->set_min(0.001); optimize_linear_error->set_step(0.001); - optimize_linear_error->set_val(0.05); + optimize_linear_error->set_value(0.05); optimize_vb->add_margin_child(TTR("Max. Linear Error:"),optimize_linear_error); optimize_angular_error = memnew( SpinBox ); optimize_angular_error->set_max(1.0); optimize_angular_error->set_min(0.001); optimize_angular_error->set_step(0.001); - optimize_angular_error->set_val(0.01); + optimize_angular_error->set_value(0.01); optimize_vb->add_margin_child(TTR("Max. Angular Error:"),optimize_angular_error); optimize_max_angle = memnew( SpinBox ); @@ -4049,7 +4130,7 @@ AnimationKeyEditor::AnimationKeyEditor() { optimize_max_angle->set_max(360.0); optimize_max_angle->set_min(0.0); optimize_max_angle->set_step(0.1); - optimize_max_angle->set_val(22); + optimize_max_angle->set_value(22); optimize_dialog->get_ok()->set_text(TTR("Optimize")); @@ -4069,9 +4150,9 @@ AnimationKeyEditor::AnimationKeyEditor() { /* l = memnew( Label ); l->set_text("Base: "); l->set_pos(Point2(0,3)); -// dr_panel->add_child(l);*/ + //dr_panel->add_child(l);*/ -// menu->get_popup()->connect("item_pressed",this,"_menu_callback"); + //menu->get_popup()->connect("id_pressed",this,"_menu_callback"); hb = memnew( HBoxContainer); @@ -4082,7 +4163,7 @@ AnimationKeyEditor::AnimationKeyEditor() { track_editor = memnew( Control ); track_editor->connect("draw",this,"_track_editor_draw"); hb->add_child(track_editor); - track_editor->connect("input_event",this,"_track_editor_input_event"); + track_editor->connect("gui_input",this,"_track_editor_gui_input"); track_editor->set_focus_mode(Control::FOCUS_ALL); track_editor->set_h_size_flags(SIZE_EXPAND_FILL); @@ -4090,7 +4171,7 @@ AnimationKeyEditor::AnimationKeyEditor() { track_pos = memnew( Control ); track_pos->set_area_as_parent_rect(); - track_pos->set_ignore_mouse(true); + track_pos->set_mouse_filter(MOUSE_FILTER_IGNORE); track_editor->add_child(track_pos); track_pos->connect("draw",this,"_track_pos_draw"); @@ -4107,7 +4188,7 @@ AnimationKeyEditor::AnimationKeyEditor() { v_scroll = memnew( VScrollBar ); hb->add_child(v_scroll); v_scroll->connect("value_changed",this,"_scroll_changed"); - v_scroll->set_val(0); + v_scroll->set_value(0); key_editor_tab = memnew(TabContainer); hb->add_child(key_editor_tab); @@ -4127,7 +4208,7 @@ AnimationKeyEditor::AnimationKeyEditor() { add_child(type_menu); for(int i=0;i<Variant::VARIANT_MAX;i++) type_menu->add_item(Variant::get_type_name(Variant::Type(i)),i); - type_menu->connect("item_pressed",this,"_create_value_item"); + type_menu->connect("id_pressed",this,"_create_value_item"); VBoxContainer *curve_vb = memnew( VBoxContainer ); curve_vb->set_name(TTR("Transition")); @@ -4166,7 +4247,7 @@ AnimationKeyEditor::AnimationKeyEditor() { track_name->connect("text_entered",this,"_track_name_changed"); track_menu = memnew( PopupMenu ); add_child(track_menu); - track_menu->connect("item_pressed",this,"_track_menu_selected"); + track_menu->connect("id_pressed",this,"_track_menu_selected"); key_editor_tab->hide(); @@ -4198,7 +4279,7 @@ AnimationKeyEditor::AnimationKeyEditor() { scale_dialog = memnew( ConfirmationDialog ); VBoxContainer *vbc = memnew( VBoxContainer ); scale_dialog->add_child(vbc); - scale_dialog->set_child_rect(vbc); + scale = memnew( SpinBox ); scale->set_min(-99999); scale->set_max(99999); @@ -4215,7 +4296,7 @@ AnimationKeyEditor::AnimationKeyEditor() { add_child(cleanup_dialog); VBoxContainer *cleanup_vb = memnew( VBoxContainer ); cleanup_dialog->add_child(cleanup_vb); - cleanup_dialog->set_child_rect(cleanup_vb); + cleanup_keys = memnew( CheckButton ); cleanup_keys->set_text(TTR("Remove invalid keys")); cleanup_keys->set_pressed(true); @@ -4237,6 +4318,7 @@ AnimationKeyEditor::AnimationKeyEditor() { add_constant_override("separation",get_constant("separation","VBoxContainer")); + track_editor->set_clip_contents(true); } diff --git a/tools/editor/animation_editor.h b/tools/editor/animation_editor.h index 3078b3288b..c4539cd763 100644 --- a/tools/editor/animation_editor.h +++ b/tools/editor/animation_editor.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -33,7 +33,7 @@ #include "scene/gui/slider.h" #include "scene/gui/menu_button.h" #include "scene/gui/spin_box.h" -#include "scene/gui/texture_frame.h" +#include "scene/gui/texture_rect.h" #include "scene/gui/scroll_bar.h" #include "scene/gui/tool_button.h" #include "scene/gui/file_dialog.h" @@ -51,7 +51,7 @@ class AnimationCurveEdit; class AnimationKeyEditor : public VBoxContainer { - OBJ_TYPE( AnimationKeyEditor, VBoxContainer ); + GDCLASS( AnimationKeyEditor, VBoxContainer ); /* enum { @@ -113,6 +113,7 @@ class AnimationKeyEditor : public VBoxContainer { OVER_KEY, OVER_VALUE, OVER_INTERP, + OVER_WRAP, OVER_UP, OVER_DOWN, OVER_REMOVE, @@ -166,7 +167,9 @@ class AnimationKeyEditor : public VBoxContainer { int track_name_editing; int interp_editing; int cont_editing; + int wrap_editing; int selected_track; + int track_ofs[5]; int last_menu_track_opt; LineEdit *track_name; @@ -174,7 +177,7 @@ class AnimationKeyEditor : public VBoxContainer { PopupMenu *type_menu; Control *ec; - TextureFrame *zoomicon; + TextureRect *zoomicon; HSlider *zoom; //MenuButton *menu; SpinBox *length; @@ -274,7 +277,7 @@ class AnimationKeyEditor : public VBoxContainer { float _get_zoom_scale() const; void _track_editor_draw(); - void _track_editor_input_event(const InputEvent& p_input); + void _track_editor_gui_input(const InputEvent& p_input); void _track_pos_draw(); @@ -344,7 +347,7 @@ public: void insert_value_key(const String& p_property, const Variant& p_value, bool p_advance); void insert_transform_key(Spatial *p_node,const String& p_sub,const Transform& p_xform); - void show_select_node_warning(bool p_show) { select_anim_warning->set_hidden(!p_show); } + void show_select_node_warning(bool p_show) { select_anim_warning->set_visible(p_show); } AnimationKeyEditor(); ~AnimationKeyEditor(); }; diff --git a/tools/editor/array_property_edit.cpp b/tools/editor/array_property_edit.cpp index b6219ce67b..b587c4f830 100644 --- a/tools/editor/array_property_edit.cpp +++ b/tools/editor/array_property_edit.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -100,13 +100,19 @@ bool ArrayPropertyEdit::_set(const StringName& p_name, const Variant& p_value){ ur->add_undo_method(this,"_set_value",i,arr.get(i)); } - } else if (newsize>size && size) { + } else if (newsize>size) { Variant init; Variant::CallError ce; - init = Variant::construct(arr.get(size-1).get_type(),NULL,0,ce); - for(int i=size;i<newsize;i++) { - ur->add_do_method(this,"_set_value",i,init); + Variant::Type new_type = subtype; + if(new_type==Variant::NIL && size) { + new_type = arr.get(size-1).get_type(); + } + if(new_type!=Variant::NIL) { + init = Variant::construct(new_type,NULL,0,ce); + for(int i=size;i<newsize;i++) { + ur->add_do_method(this,"_set_value",i,init); + } } } @@ -223,28 +229,52 @@ void ArrayPropertyEdit::_get_property_list( List<PropertyInfo> *p_list) const{ for(int i=0;i<items;i++) { Variant v=arr.get(i+offset); - if (arr.get_type()==Variant::ARRAY) { + bool is_typed = arr.get_type()!=Variant::ARRAY || subtype!=Variant::NIL; + + if (!is_typed) { p_list->push_back(PropertyInfo(Variant::INT,"indices/"+itos(i+offset)+"_type",PROPERTY_HINT_ENUM,vtypes)); } - if (arr.get_type()!=Variant::ARRAY || v.get_type()!=Variant::NIL) { + + if (is_typed || v.get_type()!=Variant::NIL ) { PropertyInfo pi(v.get_type(),"indices/"+itos(i+offset)); - if (v.get_type()==Variant::OBJECT) { + if(subtype!=Variant::NIL) { + pi.type = Variant::Type(subtype); + pi.hint = PropertyHint(subtype_hint); + pi.hint_string = subtype_hint_string; + } else if (v.get_type()==Variant::OBJECT) { pi.hint=PROPERTY_HINT_RESOURCE_TYPE; pi.hint_string="Resource"; } + p_list->push_back(pi); } } } -void ArrayPropertyEdit::edit(Object* p_obj,const StringName& p_prop,Variant::Type p_deftype) { +void ArrayPropertyEdit::edit(Object* p_obj,const StringName& p_prop,const String& p_hint_string,Variant::Type p_deftype) { page=0; property=p_prop; obj=p_obj->get_instance_ID(); default_type=p_deftype; + if(!p_hint_string.empty()) { + int hint_subtype_seperator = p_hint_string.find(":"); + if(hint_subtype_seperator >= 0) { + String subtype_string = p_hint_string.substr(0,hint_subtype_seperator); + + int slash_pos = subtype_string.find("/"); + if(slash_pos >= 0) { + subtype_hint = PropertyHint(subtype_string.substr(slash_pos+1, subtype_string.size()-slash_pos-1).to_int()); + subtype_string = subtype_string.substr(0,slash_pos); + } + + subtype_hint_string = p_hint_string.substr(hint_subtype_seperator+1, p_hint_string.size() - hint_subtype_seperator-1); + subtype=Variant::Type(subtype_string.to_int()); + } + } + } Node *ArrayPropertyEdit::get_node() { @@ -258,10 +288,10 @@ Node *ArrayPropertyEdit::get_node() { void ArrayPropertyEdit::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_set_size"),&ArrayPropertyEdit::_set_size); - ObjectTypeDB::bind_method(_MD("_set_value"),&ArrayPropertyEdit::_set_value); - ObjectTypeDB::bind_method(_MD("_notif_change"),&ArrayPropertyEdit::_notif_change); - ObjectTypeDB::bind_method(_MD("_notif_changev"),&ArrayPropertyEdit::_notif_changev); + ClassDB::bind_method(_MD("_set_size"),&ArrayPropertyEdit::_set_size); + ClassDB::bind_method(_MD("_set_value"),&ArrayPropertyEdit::_set_value); + ClassDB::bind_method(_MD("_notif_change"),&ArrayPropertyEdit::_notif_change); + ClassDB::bind_method(_MD("_notif_changev"),&ArrayPropertyEdit::_notif_changev); } ArrayPropertyEdit::ArrayPropertyEdit() @@ -274,5 +304,7 @@ ArrayPropertyEdit::ArrayPropertyEdit() vtypes+=Variant::get_type_name( Variant::Type(i) ); } default_type=Variant::NIL; - + subtype=Variant::NIL; + subtype_hint=PROPERTY_HINT_NONE; + subtype_hint_string=""; } diff --git a/tools/editor/array_property_edit.h b/tools/editor/array_property_edit.h index a2aa24c8ed..6ca700bf80 100644 --- a/tools/editor/array_property_edit.h +++ b/tools/editor/array_property_edit.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -33,12 +33,15 @@ class ArrayPropertyEdit : public Reference { - OBJ_TYPE(ArrayPropertyEdit,Reference); + GDCLASS(ArrayPropertyEdit,Reference); int page; ObjectID obj; StringName property; String vtypes; + String subtype_hint_string; + PropertyHint subtype_hint; + Variant::Type subtype; Variant get_array() const; Variant::Type default_type; @@ -56,7 +59,7 @@ protected: public: - void edit(Object* p_obj, const StringName& p_prop, Variant::Type p_deftype); + void edit(Object* p_obj, const StringName& p_prop, const String& p_hint_string, Variant::Type p_deftype); Node *get_node(); diff --git a/tools/editor/asset_library_editor_plugin.cpp b/tools/editor/asset_library_editor_plugin.cpp index 3fd5d2b5d1..6ba7a7e79b 100644 --- a/tools/editor/asset_library_editor_plugin.cpp +++ b/tools/editor/asset_library_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,10 +27,10 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "asset_library_editor_plugin.h" + #include "editor_node.h" #include "editor_settings.h" - - +#include "io/json.h" void EditorAssetLibraryItem::configure(const String& p_title,int p_asset_id,const String& p_category,int p_category_id,const String& p_author,int p_author_id,int p_rating,const String& p_cost) { @@ -89,10 +89,10 @@ void EditorAssetLibraryItem::_author_clicked(){ void EditorAssetLibraryItem::_bind_methods() { - ObjectTypeDB::bind_method("set_image",&EditorAssetLibraryItem::set_image); - ObjectTypeDB::bind_method("_asset_clicked",&EditorAssetLibraryItem::_asset_clicked); - ObjectTypeDB::bind_method("_category_clicked",&EditorAssetLibraryItem::_category_clicked); - ObjectTypeDB::bind_method("_author_clicked",&EditorAssetLibraryItem::_author_clicked); + ClassDB::bind_method("set_image",&EditorAssetLibraryItem::set_image); + ClassDB::bind_method("_asset_clicked",&EditorAssetLibraryItem::_asset_clicked); + ClassDB::bind_method("_category_clicked",&EditorAssetLibraryItem::_category_clicked); + ClassDB::bind_method("_author_clicked",&EditorAssetLibraryItem::_author_clicked); ADD_SIGNAL( MethodInfo("asset_selected")); ADD_SIGNAL( MethodInfo("category_selected")); ADD_SIGNAL( MethodInfo("author_selected")); @@ -147,7 +147,7 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() { vb->add_child(rating_hb); for(int i=0;i<5;i++) { - stars[i]=memnew(TextureFrame); + stars[i]=memnew(TextureRect); rating_hb->add_child(stars[i]); } price = memnew( Label ); @@ -157,7 +157,7 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() { set_custom_minimum_size(Size2(250,100)); set_h_size_flags(SIZE_EXPAND_FILL); - set_stop_mouse(false); + set_mouse_filter(MOUSE_FILTER_PASS); } ////////////////////////////////////////////////////////////////////////////// @@ -199,9 +199,9 @@ void EditorAssetLibraryItemDescription::set_image(int p_type,int p_index,const R } void EditorAssetLibraryItemDescription::_bind_methods() { - ObjectTypeDB::bind_method(_MD("set_image"),&EditorAssetLibraryItemDescription::set_image); - ObjectTypeDB::bind_method(_MD("_link_click"),&EditorAssetLibraryItemDescription::_link_click); - ObjectTypeDB::bind_method(_MD("_preview_click"),&EditorAssetLibraryItemDescription::_preview_click); + ClassDB::bind_method(_MD("set_image"),&EditorAssetLibraryItemDescription::set_image); + ClassDB::bind_method(_MD("_link_click"),&EditorAssetLibraryItemDescription::_link_click); + ClassDB::bind_method(_MD("_preview_click"),&EditorAssetLibraryItemDescription::_preview_click); } @@ -270,7 +270,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() { VBoxContainer *vbox = memnew( VBoxContainer ); add_child(vbox); - set_child_rect(vbox); + HBoxContainer *hbox = memnew( HBoxContainer); @@ -296,7 +296,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() { desc_bg->add_child(description); desc_bg->add_style_override("panel",get_stylebox("normal","TextEdit")); - preview = memnew( TextureFrame ); + preview = memnew( TextureRect ); preview->set_custom_minimum_size(Size2(640,345)); hbox->add_child(preview); @@ -321,7 +321,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() { } /////////////////////////////////////////////////////////////////////////////////// -void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data) { +void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data) { String error_text; @@ -379,12 +379,12 @@ void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int } progress->set_max( download->get_body_size() ); - progress->set_val(download->get_downloaded_bytes()); + progress->set_value(download->get_downloaded_bytes()); print_line("max: "+itos(download->get_body_size())+" bytes: "+itos(download->get_downloaded_bytes())); install->set_disabled(false); - progress->set_val(download->get_downloaded_bytes()); + progress->set_value(download->get_downloaded_bytes()); status->set_text("Success! ("+String::humanize_size(download->get_downloaded_bytes())+")"); set_process(false); @@ -411,7 +411,7 @@ void EditorAssetLibraryItemDownload::_notification(int p_what) { if (p_what==NOTIFICATION_PROCESS) { progress->set_max( download->get_body_size() ); - progress->set_val(download->get_downloaded_bytes()); + progress->set_value(download->get_downloaded_bytes()); int cstatus = download->get_http_client_status(); @@ -472,10 +472,10 @@ void EditorAssetLibraryItemDownload::_make_request() { void EditorAssetLibraryItemDownload::_bind_methods() { - ObjectTypeDB::bind_method("_http_download_completed",&EditorAssetLibraryItemDownload::_http_download_completed); - ObjectTypeDB::bind_method("_install",&EditorAssetLibraryItemDownload::_install); - ObjectTypeDB::bind_method("_close",&EditorAssetLibraryItemDownload::_close); - ObjectTypeDB::bind_method("_make_request",&EditorAssetLibraryItemDownload::_make_request); + ClassDB::bind_method("_http_download_completed",&EditorAssetLibraryItemDownload::_http_download_completed); + ClassDB::bind_method("_install",&EditorAssetLibraryItemDownload::_install); + ClassDB::bind_method("_close",&EditorAssetLibraryItemDownload::_close); + ClassDB::bind_method("_make_request",&EditorAssetLibraryItemDownload::_make_request); ADD_SIGNAL(MethodInfo("install_asset",PropertyInfo(Variant::STRING,"zip_path"),PropertyInfo(Variant::STRING,"name"))); @@ -485,7 +485,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { HBoxContainer *hb = memnew( HBoxContainer); add_child(hb); - icon = memnew( TextureFrame ); + icon = memnew( TextureRect ); hb->add_child(icon); VBoxContainer *vb = memnew( VBoxContainer ); @@ -555,7 +555,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { void EditorAssetLibrary::_notification(int p_what) { if (p_what==NOTIFICATION_READY) { - TextureFrame *tf = memnew(TextureFrame); + TextureRect *tf = memnew(TextureRect); tf->set_texture(get_icon("Error","EditorIcons")); reverse->set_icon(get_icon("Updown","EditorIcons")); @@ -564,7 +564,7 @@ void EditorAssetLibrary::_notification(int p_what) { } if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { - if(!is_hidden()) { + if(is_visible()) { _repository_changed(0); // Update when shown for the first time } } @@ -574,24 +574,24 @@ void EditorAssetLibrary::_notification(int p_what) { HTTPClient::Status s = request->get_http_client_status(); bool visible = s!=HTTPClient::STATUS_DISCONNECTED; - if (visible != !load_status->is_hidden()) { - load_status->set_hidden(!visible); + if (visible != load_status->is_visible()) { + load_status->set_visible(visible); } if (visible) { switch(s) { case HTTPClient::STATUS_RESOLVING: { - load_status->set_val(0.1); + load_status->set_value(0.1); } break; case HTTPClient::STATUS_CONNECTING: { - load_status->set_val(0.2); + load_status->set_value(0.2); } break; case HTTPClient::STATUS_REQUESTING: { - load_status->set_val(0.3); + load_status->set_value(0.3); } break; case HTTPClient::STATUS_BODY: { - load_status->set_val(0.4); + load_status->set_value(0.4); } break; default: {} @@ -599,8 +599,8 @@ void EditorAssetLibrary::_notification(int p_what) { } bool no_downloads = downloads_hb->get_child_count()==0; - if (no_downloads != downloads_scroll->is_hidden()) { - downloads_scroll->set_hidden(no_downloads); + if (no_downloads == downloads_scroll->is_visible()) { + downloads_scroll->set_visible(!no_downloads); } } @@ -691,12 +691,12 @@ void EditorAssetLibrary::_select_asset(int p_id){ description->popup_centered_minsize();*/ } -void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArray& p_data, int p_queue_id) { +void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByteArray& p_data, int p_queue_id) { Object *obj = ObjectDB::get_instance(image_queue[p_queue_id].target); if (obj) { bool image_set = false; - ByteArray image_data = p_data; + PoolByteArray image_data = p_data; if(use_cache) { String cache_filename_base = EditorSettings::get_singleton()->get_settings_path().plus_file("tmp").plus_file("assetimage_"+image_queue[p_queue_id].image_url.md5_text()); @@ -704,11 +704,11 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArr FileAccess* file = FileAccess::open(cache_filename_base+".data", FileAccess::READ); if(file) { - ByteArray cached_data; + PoolByteArray cached_data; int len=file->get_32(); cached_data.resize(len); - ByteArray::Write w=cached_data.write(); + PoolByteArray::Write w=cached_data.write(); file->get_buffer(w.ptr(), len); image_data = cached_data; @@ -717,7 +717,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArr } int len=image_data.size(); - ByteArray::Read r=image_data.read(); + PoolByteArray::Read r=image_data.read(); Image image(r.ptr(),len); if (!image.empty()) { float max_height = 10000; @@ -745,7 +745,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArr } } -void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data,int p_queue_id) { +void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data,int p_queue_id) { ERR_FAIL_COND( !image_queue.has(p_queue_id) ); @@ -767,7 +767,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons } int len=p_data.size(); - ByteArray::Read r=p_data.read(); + PoolByteArray::Read r=p_data.read(); file = FileAccess::open(cache_filename_base+".data", FileAccess::WRITE); if(file) { file->store_32(len); @@ -789,7 +789,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons } } - image_queue[p_queue_id].request->queue_delete();; + image_queue[p_queue_id].request->queue_delete(); image_queue.erase(p_queue_id); _update_image_queue(); @@ -855,7 +855,7 @@ void EditorAssetLibrary::_request_image(ObjectID p_for,String p_image_url,ImageT add_child(iq.request); - _image_update(true, false, ByteArray(), iq.queue_id); + _image_update(true, false, PoolByteArray(), iq.queue_id); _update_image_queue(); @@ -1021,14 +1021,14 @@ void EditorAssetLibrary::_api_request(const String& p_request, RequestType p_req -void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data) { +void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data) { String str; { int datalen=p_data.size(); - ByteArray::Read r = p_data.read(); + PoolByteArray::Read r = p_data.read(); str.parse_utf8((const char*)r.ptr(),datalen); } @@ -1076,8 +1076,16 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const } print_line("response: "+itos(p_status)+" code: "+itos(p_code)); + Dictionary d; - d.parse_json(str); + { + Variant js; + String errs; + int errl; + JSON::parse(str,js,errs,errl); + d=js; + } + print_line(Variant(d).get_construct_string()); @@ -1288,20 +1296,20 @@ void EditorAssetLibrary::_install_external_asset(String p_zip_path,String p_titl void EditorAssetLibrary::_bind_methods() { - ObjectTypeDB::bind_method("_http_request_completed",&EditorAssetLibrary::_http_request_completed); - ObjectTypeDB::bind_method("_select_asset",&EditorAssetLibrary::_select_asset); - ObjectTypeDB::bind_method("_select_author",&EditorAssetLibrary::_select_author); - ObjectTypeDB::bind_method("_select_category",&EditorAssetLibrary::_select_category); - ObjectTypeDB::bind_method("_image_request_completed",&EditorAssetLibrary::_image_request_completed); - ObjectTypeDB::bind_method("_search",&EditorAssetLibrary::_search,DEFVAL(0)); - ObjectTypeDB::bind_method("_install_asset",&EditorAssetLibrary::_install_asset); - ObjectTypeDB::bind_method("_manage_plugins",&EditorAssetLibrary::_manage_plugins); - ObjectTypeDB::bind_method("_asset_open",&EditorAssetLibrary::_asset_open); - ObjectTypeDB::bind_method("_asset_file_selected",&EditorAssetLibrary::_asset_file_selected); - ObjectTypeDB::bind_method("_repository_changed",&EditorAssetLibrary::_repository_changed); - ObjectTypeDB::bind_method("_support_toggled",&EditorAssetLibrary::_support_toggled); - ObjectTypeDB::bind_method("_rerun_search",&EditorAssetLibrary::_rerun_search); - ObjectTypeDB::bind_method("_install_external_asset",&EditorAssetLibrary::_install_external_asset); + ClassDB::bind_method("_http_request_completed",&EditorAssetLibrary::_http_request_completed); + ClassDB::bind_method("_select_asset",&EditorAssetLibrary::_select_asset); + ClassDB::bind_method("_select_author",&EditorAssetLibrary::_select_author); + ClassDB::bind_method("_select_category",&EditorAssetLibrary::_select_category); + ClassDB::bind_method("_image_request_completed",&EditorAssetLibrary::_image_request_completed); + ClassDB::bind_method("_search",&EditorAssetLibrary::_search,DEFVAL(0)); + ClassDB::bind_method("_install_asset",&EditorAssetLibrary::_install_asset); + ClassDB::bind_method("_manage_plugins",&EditorAssetLibrary::_manage_plugins); + ClassDB::bind_method("_asset_open",&EditorAssetLibrary::_asset_open); + ClassDB::bind_method("_asset_file_selected",&EditorAssetLibrary::_asset_file_selected); + ClassDB::bind_method("_repository_changed",&EditorAssetLibrary::_repository_changed); + ClassDB::bind_method("_support_toggled",&EditorAssetLibrary::_support_toggled); + ClassDB::bind_method("_rerun_search",&EditorAssetLibrary::_rerun_search); + ClassDB::bind_method("_install_external_asset",&EditorAssetLibrary::_install_external_asset); @@ -1418,7 +1426,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { support->get_popup()->add_check_item(TTR("Testing"),SUPPORT_TESTING); support->get_popup()->set_item_checked(SUPPORT_OFFICIAL,true); support->get_popup()->set_item_checked(SUPPORT_COMMUNITY,true); - support->get_popup()->connect("item_pressed",this,"_support_toggled"); + support->get_popup()->connect("id_pressed",this,"_support_toggled"); ///////// @@ -1446,7 +1454,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { library_scroll->add_child(library_vb_border); library_vb_border->add_style_override("panel",border2); library_vb_border->set_h_size_flags(SIZE_EXPAND_FILL); - library_vb_border->set_stop_mouse(false); + library_vb_border->set_mouse_filter(MOUSE_FILTER_PASS); @@ -1454,7 +1462,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { library_vb->set_h_size_flags(SIZE_EXPAND_FILL); library_vb_border->add_child(library_vb); -// margin_panel->set_stop_mouse(false); + //margin_panel->set_stop_mouse(false); asset_top_page = memnew( HBoxContainer ); library_vb->add_child(asset_top_page); diff --git a/tools/editor/asset_library_editor_plugin.h b/tools/editor/asset_library_editor_plugin.h index fe40255af9..0598ea90ea 100644 --- a/tools/editor/asset_library_editor_plugin.h +++ b/tools/editor/asset_library_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -52,13 +52,13 @@ class EditorAssetLibraryItem : public PanelContainer { - OBJ_TYPE( EditorAssetLibraryItem, PanelContainer ); + GDCLASS( EditorAssetLibraryItem, PanelContainer ); TextureButton *icon; LinkButton* title; LinkButton* category; LinkButton* author; - TextureFrame *stars[5]; + TextureRect *stars[5]; Label* price; int asset_id; @@ -88,7 +88,7 @@ public: class EditorAssetLibraryItemDescription : public ConfirmationDialog { - OBJ_TYPE(EditorAssetLibraryItemDescription, ConfirmationDialog); + GDCLASS(EditorAssetLibraryItemDescription, ConfirmationDialog); EditorAssetLibraryItem *item; RichTextLabel *description; @@ -104,7 +104,7 @@ class EditorAssetLibraryItemDescription : public ConfirmationDialog { }; Vector<Preview> preview_images; - TextureFrame *preview; + TextureRect *preview; void set_image(int p_type,int p_index,const Ref<Texture>& p_image); @@ -135,10 +135,10 @@ public: class EditorAssetLibraryItemDownload : public PanelContainer { - OBJ_TYPE(EditorAssetLibraryItemDownload, PanelContainer); + GDCLASS(EditorAssetLibraryItemDownload, PanelContainer); - TextureFrame *icon; + TextureRect *icon; Label* title; ProgressBar *progress; Button *install; @@ -162,7 +162,7 @@ class EditorAssetLibraryItemDownload : public PanelContainer { void _close(); void _install(); void _make_request(); - void _http_download_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data); + void _http_download_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data); protected: @@ -178,7 +178,7 @@ public: }; class EditorAssetLibrary : public PanelContainer { - OBJ_TYPE(EditorAssetLibrary,PanelContainer); + GDCLASS(EditorAssetLibrary,PanelContainer); String host; @@ -259,8 +259,8 @@ class EditorAssetLibrary : public PanelContainer { int last_queue_id; Map<int,ImageQueue> image_queue; - void _image_update(bool use_cache, bool final, const ByteArray& p_data, int p_queue_id); - void _image_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data, int p_queue_id); + void _image_update(bool use_cache, bool final, const PoolByteArray& p_data, int p_queue_id); + void _image_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data, int p_queue_id); void _request_image(ObjectID p_for,String p_image_url,ImageType p_type,int p_image_index); void _update_image_queue(); @@ -298,8 +298,8 @@ class EditorAssetLibrary : public PanelContainer { void _search(int p_page=0); void _rerun_search(int p_ignore); void _api_request(const String& p_request, RequestType p_request_type, const String &p_arguments=""); - void _http_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data); - void _http_download_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data); + void _http_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data); + void _http_download_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data); void _repository_changed(int p_repository_id); void _support_toggled(int p_support); @@ -318,7 +318,7 @@ public: class AssetLibraryEditorPlugin : public EditorPlugin { - OBJ_TYPE( AssetLibraryEditorPlugin, EditorPlugin ); + GDCLASS( AssetLibraryEditorPlugin, EditorPlugin ); EditorAssetLibrary *addon_library; EditorNode *editor; diff --git a/tools/editor/call_dialog.cpp b/tools/editor/call_dialog.cpp index 0c6c64a33b..6dfeb87dfd 100644 --- a/tools/editor/call_dialog.cpp +++ b/tools/editor/call_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,14 +28,15 @@ /*************************************************************************/ #include "call_dialog.h" +#if 0 #include "scene/gui/label.h" -#include "object_type_db.h" +#include "class_db.h" #include "print_string.h" class CallDialogParams : public Object { - OBJ_TYPE( CallDialogParams, Object ); + GDCLASS( CallDialogParams, Object ); public: bool _set(const StringName& p_name, const Variant& p_value) { @@ -170,11 +171,11 @@ void CallDialog::_update_method_list() { List<String> inheritance_list; - String type = object->get_type(); + String type = object->get_class(); while(type!="") { inheritance_list.push_back( type ); - type=ObjectTypeDB::type_inherits_from(type); + type=ClassDB::get_parent_class(type); } TreeItem *selected_item=NULL; @@ -182,7 +183,7 @@ void CallDialog::_update_method_list() { for(int i=0;i<inheritance_list.size();i++) { String type=inheritance_list[i]; - String parent_type=ObjectTypeDB::type_inherits_from(type); + String parent_type=ClassDB::get_parent_class(type); TreeItem *type_item=NULL; @@ -192,7 +193,7 @@ void CallDialog::_update_method_list() { N=E->next(); - if (parent_type!="" && ObjectTypeDB::get_method(parent_type,E->get().name)!=NULL) { + if (parent_type!="" && ClassDB::get_method(parent_type,E->get().name)!=NULL) { E=N; continue; } @@ -224,9 +225,9 @@ void CallDialog::_update_method_list() { void CallDialog::_bind_methods() { - ObjectTypeDB::bind_method("_call",&CallDialog::_call); - ObjectTypeDB::bind_method("_cancel",&CallDialog::_cancel); - ObjectTypeDB::bind_method("_item_selected", &CallDialog::_item_selected); + ClassDB::bind_method("_call",&CallDialog::_call); + ClassDB::bind_method("_cancel",&CallDialog::_cancel); + ClassDB::bind_method("_item_selected", &CallDialog::_item_selected); } @@ -239,7 +240,7 @@ void CallDialog::set_object(Object *p_object,StringName p_selected) { return_value->clear(); _update_method_list(); - method_label->set_text(vformat(TTR("Method List For '%s':"),p_object->get_type())); + method_label->set_text(vformat(TTR("Method List For '%s':"),p_object->get_class())); } CallDialog::CallDialog() { @@ -268,7 +269,6 @@ CallDialog::CallDialog() { tree = memnew( Tree ); - tree->set_anchor( MARGIN_RIGHT, ANCHOR_RATIO ); tree->set_anchor( MARGIN_BOTTOM, ANCHOR_END ); tree->set_begin( Point2( 20,50 ) ); tree->set_margin(MARGIN_BOTTOM, 44 ); @@ -283,7 +283,7 @@ CallDialog::CallDialog() { property_editor->set_anchor_and_margin( MARGIN_RIGHT, ANCHOR_END, 15 ); property_editor->set_anchor_and_margin( MARGIN_TOP, ANCHOR_BEGIN, 50 ); - property_editor->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 ); + //property_editor->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 ); property_editor->set_anchor_and_margin( MARGIN_BOTTOM, ANCHOR_END, 90 ); property_editor->get_scene_tree()->set_hide_root( true ); property_editor->hide_top_label(); @@ -296,21 +296,21 @@ CallDialog::CallDialog() { add_child(method_label); Label *label = memnew( Label ); - label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 ); + //label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 ); label->set_anchor_and_margin( MARGIN_TOP, ANCHOR_BEGIN, 25 ); label->set_text(TTR("Arguments:")); add_child(label); return_label = memnew( Label ); - return_label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 ); + //return_label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 ); return_label->set_anchor_and_margin( MARGIN_TOP, ANCHOR_END, 85 ); return_label->set_text(TTR("Return:")); add_child(return_label); return_value = memnew( LineEdit ); - return_value->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 ); + //return_value->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 ); return_value->set_anchor_and_margin( MARGIN_RIGHT, ANCHOR_END, 15 ); return_value->set_anchor_and_margin( MARGIN_TOP, ANCHOR_END, 65 ); @@ -338,3 +338,4 @@ CallDialog::~CallDialog() { memdelete(call_params); } +#endif diff --git a/tools/editor/call_dialog.h b/tools/editor/call_dialog.h index a2ca925ff1..b0ebe68d86 100644 --- a/tools/editor/call_dialog.h +++ b/tools/editor/call_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -39,12 +39,13 @@ @author Juan Linietsky <reduzio@gmail.com> */ +#if 0 class CallDialogParams; class CallDialog : public Popup { - OBJ_TYPE( CallDialog, Popup ); + GDCLASS( CallDialog, Popup ); Label* method_label; @@ -81,3 +82,4 @@ public: }; #endif +#endif diff --git a/tools/editor/code_editor.cpp b/tools/editor/code_editor.cpp index 626f86d33d..0a25b43716 100644 --- a/tools/editor/code_editor.cpp +++ b/tools/editor/code_editor.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "code_editor.h" + #include "editor_settings.h" #include "scene/gui/margin_container.h" #include "scene/gui/separator.h" @@ -91,7 +92,7 @@ void FindReplaceBar::_notification(int p_what) { } else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - set_process_unhandled_input(is_visible()); + set_process_unhandled_input(is_visible_in_tree()); } } @@ -377,7 +378,7 @@ void FindReplaceBar::popup_search() { void FindReplaceBar::popup_replace() { - if (!replace_hbc->is_visible() || !replace_options_hbc->is_visible()) { + if (!replace_hbc->is_visible_in_tree() || !replace_options_hbc->is_visible_in_tree()) { replace_text->clear(); replace_hbc->show(); replace_options_hbc->show(); @@ -396,7 +397,7 @@ void FindReplaceBar::_search_options_changed(bool p_pressed) { void FindReplaceBar::_editor_text_changed() { - if (is_visible()) { + if (is_visible_in_tree()) { preserve_cursor=true; search_current(); preserve_cursor=false; @@ -459,19 +460,19 @@ void FindReplaceBar::set_text_edit(TextEdit *p_text_edit) { void FindReplaceBar::_bind_methods() { - ObjectTypeDB::bind_method("_unhandled_input",&FindReplaceBar::_unhandled_input); + ClassDB::bind_method("_unhandled_input",&FindReplaceBar::_unhandled_input); - ObjectTypeDB::bind_method("_editor_text_changed",&FindReplaceBar::_editor_text_changed); - ObjectTypeDB::bind_method("_search_text_changed",&FindReplaceBar::_search_text_changed); - ObjectTypeDB::bind_method("_search_text_entered",&FindReplaceBar::_search_text_entered); - ObjectTypeDB::bind_method("_replace_text_entered",&FindReplaceBar::_replace_text_entered); - ObjectTypeDB::bind_method("_search_current",&FindReplaceBar::search_current); - ObjectTypeDB::bind_method("_search_next",&FindReplaceBar::search_next); - ObjectTypeDB::bind_method("_search_prev",&FindReplaceBar::search_prev); - ObjectTypeDB::bind_method("_replace_pressed",&FindReplaceBar::_replace); - ObjectTypeDB::bind_method("_replace_all_pressed",&FindReplaceBar::_replace_all); - ObjectTypeDB::bind_method("_search_options_changed",&FindReplaceBar::_search_options_changed); - ObjectTypeDB::bind_method("_hide_pressed",&FindReplaceBar::_hide_bar); + ClassDB::bind_method("_editor_text_changed",&FindReplaceBar::_editor_text_changed); + ClassDB::bind_method("_search_text_changed",&FindReplaceBar::_search_text_changed); + ClassDB::bind_method("_search_text_entered",&FindReplaceBar::_search_text_entered); + ClassDB::bind_method("_replace_text_entered",&FindReplaceBar::_replace_text_entered); + ClassDB::bind_method("_search_current",&FindReplaceBar::search_current); + ClassDB::bind_method("_search_next",&FindReplaceBar::search_next); + ClassDB::bind_method("_search_prev",&FindReplaceBar::search_prev); + ClassDB::bind_method("_replace_pressed",&FindReplaceBar::_replace); + ClassDB::bind_method("_replace_all_pressed",&FindReplaceBar::_replace_all); + ClassDB::bind_method("_search_options_changed",&FindReplaceBar::_search_options_changed); + ClassDB::bind_method("_hide_pressed",&FindReplaceBar::_hide_bar); ADD_SIGNAL(MethodInfo("search")); } @@ -714,7 +715,7 @@ void FindReplaceDialog::_replace() { } text_edit->set_v_scroll(vsval); -// text_edit->set_h_scroll(hsval); + //text_edit->set_h_scroll(hsval); error_label->set_text(vformat(TTR("Replaced %d ocurrence(s)."),rc)); @@ -801,7 +802,7 @@ void FindReplaceDialog::_skip_pressed() { bool FindReplaceDialog::is_replace_mode() const { - return replace_text->is_visible(); + return replace_text->is_visible_in_tree(); } bool FindReplaceDialog::is_replace_all_mode() const { @@ -826,7 +827,7 @@ void FindReplaceDialog::ok_pressed() { void FindReplaceDialog::_search_text_entered(const String& p_text) { - if (replace_text->is_visible()) + if (replace_text->is_visible_in_tree()) return; emit_signal("search"); _search(); @@ -835,7 +836,7 @@ void FindReplaceDialog::_search_text_entered(const String& p_text) { void FindReplaceDialog::_replace_text_entered(const String& p_text) { - if (!replace_text->is_visible()) + if (!replace_text->is_visible_in_tree()) return; emit_signal("search"); @@ -884,10 +885,10 @@ void FindReplaceDialog::search_next() { void FindReplaceDialog::_bind_methods() { - ObjectTypeDB::bind_method("_search_text_entered",&FindReplaceDialog::_search_text_entered); - ObjectTypeDB::bind_method("_replace_text_entered",&FindReplaceDialog::_replace_text_entered); - ObjectTypeDB::bind_method("_prompt_changed",&FindReplaceDialog::_prompt_changed); - ObjectTypeDB::bind_method("_skip_pressed",&FindReplaceDialog::_skip_pressed); + ClassDB::bind_method("_search_text_entered",&FindReplaceDialog::_search_text_entered); + ClassDB::bind_method("_replace_text_entered",&FindReplaceDialog::_replace_text_entered); + ClassDB::bind_method("_prompt_changed",&FindReplaceDialog::_prompt_changed); + ClassDB::bind_method("_skip_pressed",&FindReplaceDialog::_skip_pressed); ADD_SIGNAL(MethodInfo("search")); ADD_SIGNAL(MethodInfo("skip")); @@ -895,11 +896,11 @@ void FindReplaceDialog::_bind_methods() { FindReplaceDialog::FindReplaceDialog() { - set_self_opacity(0.8); + set_self_modulate(Color(1,1,1,0.8)); VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); - set_child_rect(vb); + search_text = memnew( LineEdit ); @@ -951,7 +952,7 @@ FindReplaceDialog::FindReplaceDialog() { VBoxContainer *rvb = memnew( VBoxContainer); opt_mg->add_child(rvb); replace_vb=rvb; -// rvb ->add_child(memnew(HSeparator)); + //rvb ->add_child(memnew(HSeparator)); rvb ->add_child(memnew(Label)); prompt = memnew( CheckButton ); @@ -995,7 +996,7 @@ FindReplaceDialog::FindReplaceDialog() { /*** CODE EDITOR ****/ -void CodeTextEditor::_text_editor_input_event(const InputEvent& p_event) { +void CodeTextEditor::_text_editor_gui_input(const InputEvent& p_event) { if (p_event.type==InputEvent::MOUSE_BUTTON) { @@ -1043,7 +1044,7 @@ void CodeTextEditor::_reset_zoom() { Ref<DynamicFont> font = text_editor->get_font("font"); // reset source font size to default if (font.is_valid()) { - EditorSettings::get_singleton()->set("global/source_font_size",14); + EditorSettings::get_singleton()->set("interface/source_font_size",14); font->set_size(14); } } @@ -1061,7 +1062,7 @@ void CodeTextEditor::_text_changed() { } void CodeTextEditor::_code_complete_timer_timeout() { - if (!is_visible()) + if (!is_visible_in_tree()) return; if (enable_complete_timer) text_editor->query_code_comple(); @@ -1097,7 +1098,7 @@ void CodeTextEditor::_font_resize_timeout() { int size=font->get_size()+font_resize_val; if (size>=8 && size<=96) { - EditorSettings::get_singleton()->set("global/source_font_size",size); + EditorSettings::get_singleton()->set("interface/source_font_size",size); font->set_size(size); } @@ -1107,20 +1108,20 @@ void CodeTextEditor::_font_resize_timeout() { void CodeTextEditor::update_editor_settings() { - text_editor->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/auto_brace_complete")); - text_editor->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/scroll_past_end_of_file")); - text_editor->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); - text_editor->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); - text_editor->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); - text_editor->set_line_numbers_zero_padded(EditorSettings::get_singleton()->get("text_editor/line_numbers_zero_padded")); - text_editor->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/show_line_length_guideline")); - text_editor->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_length_guideline_column")); - text_editor->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/syntax_highlighting")); - text_editor->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); - text_editor->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink")); - text_editor->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/caret_blink_speed")); - text_editor->set_draw_breakpoint_gutter(EditorSettings::get_singleton()->get("text_editor/show_breakpoint_gutter")); - text_editor->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/block_caret")); + text_editor->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/completion/auto_brace_complete")); + text_editor->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/cursor/scroll_past_end_of_file")); + text_editor->set_tab_size(EditorSettings::get_singleton()->get("text_editor/indent/tab_size")); + text_editor->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/indent/draw_tabs")); + text_editor->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_line_numbers")); + text_editor->set_line_numbers_zero_padded(EditorSettings::get_singleton()->get("text_editor/line_numbers/line_numbers_zero_padded")); + text_editor->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_line_length_guideline")); + text_editor->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_numbers/line_length_guideline_column")); + text_editor->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/highlighting/syntax_highlighting")); + text_editor->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlighting/highlight_all_occurrences")); + text_editor->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink")); + text_editor->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed")); + text_editor->set_draw_breakpoint_gutter(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_breakpoint_gutter")); + text_editor->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/cursor/block_caret")); } void CodeTextEditor::set_error(const String& p_error) { @@ -1137,7 +1138,7 @@ void CodeTextEditor::set_error(const String& p_error) { void CodeTextEditor::_update_font() { // FONTS - String editor_font = EDITOR_DEF("text_editor/font", ""); + String editor_font = EDITOR_DEF("text_editor/theme/font", ""); bool font_overridden = false; if (editor_font!="") { Ref<Font> fnt = ResourceLoader::load(editor_font); @@ -1158,19 +1159,19 @@ void CodeTextEditor::_on_settings_change() { // AUTO BRACE COMPLETION text_editor->set_auto_brace_completion( - EDITOR_DEF("text_editor/auto_brace_complete", true) + EDITOR_DEF("text_editor/completion/auto_brace_complete", true) ); code_complete_timer->set_wait_time( - EDITOR_DEF("text_editor/code_complete_delay",.3f) + EDITOR_DEF("text_editor/completion/code_complete_delay",.3f) ); - enable_complete_timer = EDITOR_DEF("text_editor/enable_code_completion_delay",true); + enable_complete_timer = EDITOR_DEF("text_editor/completion/enable_code_completion_delay",true); // call hint settings text_editor->set_callhint_settings( - EDITOR_DEF("text_editor/put_callhint_tooltip_below_current_line", true), - EDITOR_DEF("text_editor/callhint_tooltip_offset", Vector2()) + EDITOR_DEF("text_editor/completion/put_callhint_tooltip_below_current_line", true), + EDITOR_DEF("text_editor/completion/callhint_tooltip_offset", Vector2()) ); } @@ -1195,14 +1196,14 @@ void CodeTextEditor::_notification(int p_what) { void CodeTextEditor::_bind_methods() { - ObjectTypeDB::bind_method("_text_editor_input_event",&CodeTextEditor::_text_editor_input_event); - ObjectTypeDB::bind_method("_line_col_changed",&CodeTextEditor::_line_col_changed); - ObjectTypeDB::bind_method("_text_changed",&CodeTextEditor::_text_changed); - ObjectTypeDB::bind_method("_on_settings_change",&CodeTextEditor::_on_settings_change); - ObjectTypeDB::bind_method("_text_changed_idle_timeout",&CodeTextEditor::_text_changed_idle_timeout); - ObjectTypeDB::bind_method("_code_complete_timer_timeout",&CodeTextEditor::_code_complete_timer_timeout); - ObjectTypeDB::bind_method("_complete_request",&CodeTextEditor::_complete_request); - ObjectTypeDB::bind_method("_font_resize_timeout",&CodeTextEditor::_font_resize_timeout); + ClassDB::bind_method("_text_editor_gui_input",&CodeTextEditor::_text_editor_gui_input); + ClassDB::bind_method("_line_col_changed",&CodeTextEditor::_line_col_changed); + ClassDB::bind_method("_text_changed",&CodeTextEditor::_text_changed); + ClassDB::bind_method("_on_settings_change",&CodeTextEditor::_on_settings_change); + ClassDB::bind_method("_text_changed_idle_timeout",&CodeTextEditor::_text_changed_idle_timeout); + ClassDB::bind_method("_code_complete_timer_timeout",&CodeTextEditor::_code_complete_timer_timeout); + ClassDB::bind_method("_complete_request",&CodeTextEditor::_complete_request); + ClassDB::bind_method("_font_resize_timeout",&CodeTextEditor::_font_resize_timeout); ADD_SIGNAL(MethodInfo("validate_script")); ADD_SIGNAL(MethodInfo("load_theme_settings")); @@ -1252,14 +1253,14 @@ CodeTextEditor::CodeTextEditor() { idle = memnew( Timer ); add_child(idle); idle->set_one_shot(true); - idle->set_wait_time(EDITOR_DEF("text_editor/idle_parse_delay",2)); + idle->set_wait_time(EDITOR_DEF("text_editor/completion/idle_parse_delay",2)); code_complete_timer = memnew(Timer); add_child(code_complete_timer); code_complete_timer->set_one_shot(true); - enable_complete_timer = EDITOR_DEF("text_editor/enable_code_completion_delay",true); + enable_complete_timer = EDITOR_DEF("text_editor/completion/enable_code_completion_delay",true); - code_complete_timer->set_wait_time(EDITOR_DEF("text_editor/code_complete_delay",.3f)); + code_complete_timer->set_wait_time(EDITOR_DEF("text_editor/completion/code_complete_delay",.3f)); error = memnew( Label ); status_bar->add_child(error); @@ -1297,7 +1298,7 @@ CodeTextEditor::CodeTextEditor() { col_nb->set_autowrap(true); // workaround to prevent resizing the label on each change col_nb->set_custom_minimum_size(Size2(40,1)*EDSCALE); - text_editor->connect("input_event", this,"_text_editor_input_event"); + text_editor->connect("gui_input", this,"_text_editor_gui_input"); text_editor->connect("cursor_changed", this,"_line_col_changed"); text_editor->connect("text_changed", this,"_text_changed"); text_editor->connect("request_completion", this,"_complete_request"); @@ -1305,6 +1306,7 @@ CodeTextEditor::CodeTextEditor() { cs.push_back("."); cs.push_back(","); cs.push_back("("); + cs.push_back("$"); text_editor->set_completion(true,cs); idle->connect("timeout", this,"_text_changed_idle_timeout"); diff --git a/tools/editor/code_editor.h b/tools/editor/code_editor.h index ce3b5bee26..a000f02010 100644 --- a/tools/editor/code_editor.h +++ b/tools/editor/code_editor.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -42,7 +42,7 @@ class GotoLineDialog : public ConfirmationDialog { - OBJ_TYPE(GotoLineDialog,ConfirmationDialog); + GDCLASS(GotoLineDialog,ConfirmationDialog); Label *line_label; LineEdit *line; @@ -62,7 +62,7 @@ public: class FindReplaceBar : public HBoxContainer { - OBJ_TYPE(FindReplaceBar,HBoxContainer); + GDCLASS(FindReplaceBar,HBoxContainer); LineEdit *search_text; ToolButton *find_prev; @@ -134,7 +134,7 @@ public: class FindReplaceDialog : public ConfirmationDialog { - OBJ_TYPE(FindReplaceDialog,ConfirmationDialog); + GDCLASS(FindReplaceDialog,ConfirmationDialog); LineEdit *search_text; LineEdit *replace_text; @@ -194,7 +194,7 @@ typedef void (*CodeTextEditorCodeCompleteFunc)(void* p_ud,const String& p_code, class CodeTextEditor : public VBoxContainer { - OBJ_TYPE(CodeTextEditor,VBoxContainer); + GDCLASS(CodeTextEditor,VBoxContainer); TextEdit *text_editor; FindReplaceBar *find_replace_bar; @@ -217,7 +217,7 @@ class CodeTextEditor : public VBoxContainer { void _complete_request(); void _font_resize_timeout(); - void _text_editor_input_event(const InputEvent& p_event); + void _text_editor_gui_input(const InputEvent& p_event); void _zoom_in(); void _zoom_out(); void _reset_zoom(); diff --git a/tools/editor/connections_dialog.cpp b/tools/editor/connections_dialog.cpp index 1baad2c6b3..91ba419c97 100644 --- a/tools/editor/connections_dialog.cpp +++ b/tools/editor/connections_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,10 +28,7 @@ /*************************************************************************/ #include "connections_dialog.h" - #include "scene/gui/label.h" - - #include "print_string.h" #include "editor_settings.h" #include "editor_node.h" @@ -39,7 +36,7 @@ class ConnectDialogBinds : public Object { - OBJ_TYPE( ConnectDialogBinds, Object ); + GDCLASS( ConnectDialogBinds, Object ); public: Vector<Variant> params; @@ -127,7 +124,7 @@ void ConnectDialog::_tree_node_selected() { if (E->get().name.length() && E->get().name[0]=='_') continue; // hidden method, not show! - if (ObjectTypeDB::has_method(node->get_type(),"Node") || ObjectTypeDB::has_method(node->get_type(),"Control",true)) + if (ClassDB::has_method(node->get_type(),"Node") || ClassDB::has_method(node->get_type(),"Control",true)) continue; //avoid too much unnecesary stuff String method=E->get().name+"("; @@ -249,8 +246,8 @@ void ConnectDialog::_add_bind() { case Variant::VECTOR3: value = Vector3(); break; case Variant::PLANE: value = Plane(); break; case Variant::QUAT: value = Quat(); break; - case Variant::_AABB: value = AABB(); break; - case Variant::MATRIX3: value = Matrix3(); break; + case Variant::RECT3: value = Rect3(); break; + case Variant::BASIS: value = Basis(); break; case Variant::TRANSFORM: value = Transform(); break; case Variant::COLOR: value = Color(); break; case Variant::IMAGE: value = Image(); break; @@ -290,13 +287,13 @@ void ConnectDialog::set_dst_method(const StringName& p_method) { void ConnectDialog::_bind_methods() { - //ObjectTypeDB::bind_method("_ok",&ConnectDialog::_ok_pressed); - ObjectTypeDB::bind_method("_cancel",&ConnectDialog::_cancel_pressed); - //ObjectTypeDB::bind_method("_dst_method_list_selected",&ConnectDialog::_dst_method_list_selected); - ObjectTypeDB::bind_method("_tree_node_selected",&ConnectDialog::_tree_node_selected); + //ClassDB::bind_method("_ok",&ConnectDialog::_ok_pressed); + ClassDB::bind_method("_cancel",&ConnectDialog::_cancel_pressed); + //ClassDB::bind_method("_dst_method_list_selected",&ConnectDialog::_dst_method_list_selected); + ClassDB::bind_method("_tree_node_selected",&ConnectDialog::_tree_node_selected); - ObjectTypeDB::bind_method("_add_bind",&ConnectDialog::_add_bind); - ObjectTypeDB::bind_method("_remove_bind",&ConnectDialog::_remove_bind); + ClassDB::bind_method("_add_bind",&ConnectDialog::_add_bind); + ClassDB::bind_method("_remove_bind",&ConnectDialog::_remove_bind); ADD_SIGNAL( MethodInfo("connected") ); } @@ -305,7 +302,7 @@ ConnectDialog::ConnectDialog() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + HBoxContainer *main_hb = memnew( HBoxContainer ); vbc->add_child(main_hb); @@ -343,8 +340,8 @@ ConnectDialog::ConnectDialog() { type_list->add_item("Vector3",Variant::VECTOR3); type_list->add_item("Plane",Variant::PLANE); type_list->add_item("Quat",Variant::QUAT); - type_list->add_item("AABB",Variant::_AABB); - type_list->add_item("Matrix3",Variant::MATRIX3); + type_list->add_item("Rect3",Variant::RECT3); + type_list->add_item("Basis",Variant::BASIS); type_list->add_item("Transform",Variant::TRANSFORM); //type_list->add_separator(); type_list->add_item("Color",Variant::COLOR); @@ -395,7 +392,7 @@ ConnectDialog::ConnectDialog() { make_callback = memnew( CheckButton ); make_callback->set_toggle_mode(true); - make_callback->set_pressed( EDITOR_DEF("text_editor/create_signal_callbacks",true)); + make_callback->set_pressed( EDITOR_DEF("text_editor/tools/create_signal_callbacks",true)); make_callback->set_text(TTR("Make Function")); dstm_hb->add_child(make_callback); @@ -421,7 +418,7 @@ ConnectDialog::ConnectDialog() { -// dst_method_list->get_popup()->connect("item_pressed", this,"_dst_method_list_selected"); + //dst_method_list->get_popup()->connect("id_pressed", this,"_dst_method_list_selected"); tree->connect("node_selected", this,"_tree_node_selected"); set_as_toplevel(true); @@ -432,7 +429,7 @@ ConnectDialog::ConnectDialog() { add_child(error); error->get_ok()->set_text(TTR("Close")); get_ok()->set_text(TTR("Connect")); -// error->get_cancel()->set_text("Close"); + //error->get_cancel()->set_text("Close"); @@ -475,7 +472,7 @@ void ConnectionsDock::_connect() { bool defer=connect_dialog->get_deferred(); bool oshot=connect_dialog->get_oneshot(); Vector<Variant> binds = connect_dialog->get_binds(); - StringArray args = it->get_metadata(0).operator Dictionary()["args"]; + PoolStringArray args = it->get_metadata(0).operator Dictionary()["args"]; int flags = CONNECT_PERSIST | (defer?CONNECT_DEFERRED:0) | (oshot?CONNECT_ONESHOT:0); undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"),signal,String(dst_method))); @@ -616,7 +613,7 @@ void ConnectionsDock::update_tree() { //node_signals.sort_custom<_ConnectionsDockMethodInfoSort>(); bool did_script=false; - StringName base = node->get_type(); + StringName base = node->get_class(); while(base) { @@ -632,16 +629,16 @@ void ConnectionsDock::update_tree() { if (scr->get_path().is_resource_file()) name=scr->get_path().get_file(); else - name=scr->get_type(); + name=scr->get_class(); - if (has_icon(scr->get_type(),"EditorIcons")) { - icon=get_icon(scr->get_type(),"EditorIcons"); + if (has_icon(scr->get_class(),"EditorIcons")) { + icon=get_icon(scr->get_class(),"EditorIcons"); } } } else { - ObjectTypeDB::get_signal_list(base,&node_signals,true); + ClassDB::get_signal_list(base,&node_signals,true); if (has_icon(base,"EditorIcons")) { icon=get_icon(base,"EditorIcons"); } @@ -668,7 +665,7 @@ void ConnectionsDock::update_tree() { String signaldesc; signaldesc=mi.name+"("; - StringArray argnames; + PoolStringArray argnames; if (mi.arguments.size()) { signaldesc+=" "; for(int i=0;i<mi.arguments.size();i++) { @@ -740,7 +737,7 @@ void ConnectionsDock::update_tree() { if (!did_script) { did_script=true; } else { - base=ObjectTypeDB::type_inherits_from(base); + base=ClassDB::get_parent_class(base); } } @@ -825,12 +822,12 @@ void ConnectionsDock::_something_activated() { void ConnectionsDock::_bind_methods() { - ObjectTypeDB::bind_method("_connect",&ConnectionsDock::_connect); - ObjectTypeDB::bind_method("_something_selected",&ConnectionsDock::_something_selected); - ObjectTypeDB::bind_method("_something_activated",&ConnectionsDock::_something_activated); - ObjectTypeDB::bind_method("_close",&ConnectionsDock::_close); - ObjectTypeDB::bind_method("_connect_pressed",&ConnectionsDock::_connect_pressed); - ObjectTypeDB::bind_method("update_tree",&ConnectionsDock::update_tree); + ClassDB::bind_method("_connect",&ConnectionsDock::_connect); + ClassDB::bind_method("_something_selected",&ConnectionsDock::_something_selected); + ClassDB::bind_method("_something_activated",&ConnectionsDock::_something_activated); + ClassDB::bind_method("_close",&ConnectionsDock::_close); + ClassDB::bind_method("_connect_pressed",&ConnectionsDock::_connect_pressed); + ClassDB::bind_method("update_tree",&ConnectionsDock::update_tree); } @@ -857,7 +854,7 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) { hb->add_spacer(); hb->add_child(connect_button); connect_button->connect("pressed",this,"_connect_pressed"); -// add_child(tree); + //add_child(tree); connect_dialog = memnew( ConnectDialog ); connect_dialog->set_as_toplevel(true); diff --git a/tools/editor/connections_dialog.h b/tools/editor/connections_dialog.h index 73f52abc9e..64b292bc34 100644 --- a/tools/editor/connections_dialog.h +++ b/tools/editor/connections_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -48,7 +48,7 @@ class ConnectDialogBinds; class ConnectDialog : public ConfirmationDialog { - OBJ_TYPE( ConnectDialog, ConfirmationDialog ); + GDCLASS( ConnectDialog, ConfirmationDialog ); ConfirmationDialog *error; @@ -77,7 +77,7 @@ protected: public: - bool get_make_callback() { return !make_callback->is_hidden() && make_callback->is_pressed(); } + bool get_make_callback() { return make_callback->is_visible() && make_callback->is_pressed(); } NodePath get_dst_path() const; StringName get_dst_method() const; bool get_deferred() const; @@ -86,8 +86,8 @@ public: void set_dst_method(const StringName& p_method); void set_dst_node(Node* p_node); -// Button *get_ok() { return ok; } -// Button *get_cancel() { return cancel; } + //Button *get_ok() { return ok; } + //Button *get_cancel() { return cancel; } void edit(Node *p_node); ConnectDialog(); @@ -97,7 +97,7 @@ public: class ConnectionsDock : public VBoxContainer { - OBJ_TYPE( ConnectionsDock , VBoxContainer ); + GDCLASS( ConnectionsDock , VBoxContainer ); Button *connect_button; EditorNode *editor; diff --git a/tools/editor/create_dialog.cpp b/tools/editor/create_dialog.cpp index 320939cb97..53e968f389 100644 --- a/tools/editor/create_dialog.cpp +++ b/tools/editor/create_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,7 +28,7 @@ /*************************************************************************/ #include "create_dialog.h" -#include "object_type_db.h" +#include "class_db.h" #include "print_string.h" #include "scene/gui/box_container.h" #include "editor_node.h" @@ -141,7 +141,7 @@ void CreateDialog::_sbox_input(const InputEvent& p_ie) { p_ie.key.scancode == KEY_PAGEUP || p_ie.key.scancode == KEY_PAGEDOWN ) ) { - search_options->call("_input_event",p_ie); + search_options->call("_gui_input",p_ie); search_box->accept_event(); } @@ -151,10 +151,10 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty if (p_types.has(p_type)) return; - if (!ObjectTypeDB::is_type(p_type,base_type) || p_type==base_type) + if (!ClassDB::is_parent_class(p_type,base_type) || p_type==base_type) return; - String inherits=ObjectTypeDB::type_inherits_from(p_type); + String inherits=ClassDB::get_parent_class(p_type); TreeItem *parent=p_root; @@ -172,7 +172,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty TreeItem *item = search_options->create_item(parent); item->set_text(0,p_type); - if (!ObjectTypeDB::can_instance(p_type)) { + if (!ClassDB::can_instance(p_type)) { item->set_custom_color(0, Color(0.5,0.5,0.5) ); item->set_selectable(0,false); } else { @@ -183,7 +183,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty } - if (bool(EditorSettings::get_singleton()->get("scenetree_editor/start_create_dialog_fully_expanded"))) { + if (bool(EditorSettings::get_singleton()->get("docks/scene_tree/start_create_dialog_fully_expanded"))) { item->set_collapsed(false); } else { // don't collapse search results @@ -191,7 +191,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty // don't collapse the root node collapse &= (item != p_root); // don't collapse abstract nodes on the first tree level - collapse &= ((parent != p_root) || (ObjectTypeDB::can_instance(p_type))); + collapse &= ((parent != p_root) || (ClassDB::can_instance(p_type))); item->set_collapsed(collapse); } @@ -222,7 +222,7 @@ void CreateDialog::_update_search() { */ List<StringName> type_list; - ObjectTypeDB::get_type_list(&type_list); + ClassDB::get_class_list(&type_list); HashMap<String,TreeItem*> types; @@ -245,7 +245,7 @@ void CreateDialog::_update_search() { if (base_type=="Node" && type.begins_with("Editor")) continue; // do not show editor nodes - if (!ObjectTypeDB::can_instance(type)) + if (!ClassDB::can_instance(type)) continue; // cant create what can't be instanced if (search_box->get_text()=="") { @@ -254,14 +254,14 @@ void CreateDialog::_update_search() { bool found=false; String type=I->get(); - while(type!="" && ObjectTypeDB::is_type(type,base_type) && type!=base_type) { + while(type!="" && ClassDB::is_parent_class(type,base_type) && type!=base_type) { if (search_box->get_text().is_subsequence_ofi(type)) { found=true; break; } - type=ObjectTypeDB::type_inherits_from(type); + type=ClassDB::get_parent_class(type); } @@ -269,7 +269,7 @@ void CreateDialog::_update_search() { add_type(I->get(),types,root,&to_select); } - if (EditorNode::get_editor_data().get_custom_types().has(type) && ObjectTypeDB::is_type(type, base_type)) { + if (EditorNode::get_editor_data().get_custom_types().has(type) && ClassDB::is_parent_class(type, base_type)) { //there are custom types based on this... cool. //print_line("there are custom types"); @@ -369,7 +369,7 @@ void CreateDialog::_notification(int p_what) { if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { - if (is_visible()) { + if (is_visible_in_tree()) { search_box->call_deferred("grab_focus"); // still not visible search_box->select_all(); @@ -400,8 +400,11 @@ Object *CreateDialog::instance_selected() { if (selected) { - String custom = selected->get_metadata(0); + Variant md = selected->get_metadata(0); + String custom; + if (md.get_type()!=Variant::NIL) + custom=md; if (custom!=String()) { if (EditorNode::get_editor_data().get_custom_types().has(custom)) { @@ -412,9 +415,9 @@ Object *CreateDialog::instance_selected() { Ref<Script> script = EditorNode::get_editor_data().get_custom_types()[custom][i].script; String name = selected->get_text(0); - Object *ob = ObjectTypeDB::instance(custom); + Object *ob = ClassDB::instance(custom); ERR_FAIL_COND_V(!ob,NULL); - if (ob->is_type("Node")) { + if (ob->is_class("Node")) { ob->call("set_name",name); } ob->set_script(script.get_ref_ptr()); @@ -427,7 +430,7 @@ Object *CreateDialog::instance_selected() { } } else { - return ObjectTypeDB::instance(selected->get_text(0)); + return ClassDB::instance(selected->get_text(0)); } } @@ -621,20 +624,20 @@ void CreateDialog::drop_data_fw(const Point2& p_point,const Variant& p_data,Cont void CreateDialog::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_text_changed"),&CreateDialog::_text_changed); - ObjectTypeDB::bind_method(_MD("_confirmed"),&CreateDialog::_confirmed); - ObjectTypeDB::bind_method(_MD("_sbox_input"),&CreateDialog::_sbox_input); - ObjectTypeDB::bind_method(_MD("_item_selected"),&CreateDialog::_item_selected); - ObjectTypeDB::bind_method(_MD("_favorite_toggled"),&CreateDialog::_favorite_toggled); - ObjectTypeDB::bind_method(_MD("_history_selected"),&CreateDialog::_history_selected); - ObjectTypeDB::bind_method(_MD("_favorite_selected"),&CreateDialog::_favorite_selected); - ObjectTypeDB::bind_method(_MD("_history_activated"),&CreateDialog::_history_activated); - ObjectTypeDB::bind_method(_MD("_favorite_activated"),&CreateDialog::_favorite_activated); + ClassDB::bind_method(_MD("_text_changed"),&CreateDialog::_text_changed); + ClassDB::bind_method(_MD("_confirmed"),&CreateDialog::_confirmed); + ClassDB::bind_method(_MD("_sbox_input"),&CreateDialog::_sbox_input); + ClassDB::bind_method(_MD("_item_selected"),&CreateDialog::_item_selected); + ClassDB::bind_method(_MD("_favorite_toggled"),&CreateDialog::_favorite_toggled); + ClassDB::bind_method(_MD("_history_selected"),&CreateDialog::_history_selected); + ClassDB::bind_method(_MD("_favorite_selected"),&CreateDialog::_favorite_selected); + ClassDB::bind_method(_MD("_history_activated"),&CreateDialog::_history_activated); + ClassDB::bind_method(_MD("_favorite_activated"),&CreateDialog::_favorite_activated); - ObjectTypeDB::bind_method("get_drag_data_fw",&CreateDialog::get_drag_data_fw); - ObjectTypeDB::bind_method("can_drop_data_fw",&CreateDialog::can_drop_data_fw); - ObjectTypeDB::bind_method("drop_data_fw",&CreateDialog::drop_data_fw); + ClassDB::bind_method("get_drag_data_fw",&CreateDialog::get_drag_data_fw); + ClassDB::bind_method("can_drop_data_fw",&CreateDialog::can_drop_data_fw); + ClassDB::bind_method("drop_data_fw",&CreateDialog::drop_data_fw); ADD_SIGNAL(MethodInfo("create")); @@ -646,7 +649,7 @@ CreateDialog::CreateDialog() { HSplitContainer *hbc = memnew( HSplitContainer ); add_child(hbc); - set_child_rect(hbc); + VBoxContainer *lvbc = memnew( VBoxContainer); hbc->add_child(lvbc); @@ -682,7 +685,7 @@ CreateDialog::CreateDialog() { favorite->connect("pressed",this,"_favorite_toggled"); vbc->add_margin_child(TTR("Search:"),search_hb); search_box->connect("text_changed",this,"_text_changed"); - search_box->connect("input_event",this,"_sbox_input"); + search_box->connect("gui_input",this,"_sbox_input"); search_options = memnew( Tree ); vbc->add_margin_child(TTR("Matches:"),search_options,true); get_ok()->set_text(TTR("Create")); @@ -691,7 +694,7 @@ CreateDialog::CreateDialog() { set_hide_on_ok(false); search_options->connect("item_activated",this,"_confirmed"); search_options->connect("cell_selected",this,"_item_selected"); -// search_options->set_hide_root(true); + //search_options->set_hide_root(true); base_type="Object"; help_bit = memnew( EditorHelpBit ); @@ -740,10 +743,10 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty if (p_types.has(p_type)) return; - if (!ObjectTypeDB::is_type(p_type,base) || p_type==base) + if (!ClassDB::is_type(p_type,base) || p_type==base) return; - String inherits=ObjectTypeDB::type_inherits_from(p_type); + String inherits=ClassDB::type_inherits_from(p_type); TreeItem *parent=p_root; @@ -761,7 +764,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty TreeItem *item = tree->create_item(parent); item->set_text(0,p_type); - if (!ObjectTypeDB::can_instance(p_type)) { + if (!ClassDB::can_instance(p_type)) { item->set_custom_color(0, Color(0.5,0.5,0.5) ); item->set_selectable(0,false); } @@ -782,7 +785,7 @@ void CreateDialog::update_tree() { tree->clear(); List<String> type_list; - ObjectTypeDB::get_type_list(&type_list); + ClassDB::get_type_list(&type_list); HashMap<String,TreeItem*> types; @@ -798,7 +801,7 @@ void CreateDialog::update_tree() { String type=I->get(); - if (!ObjectTypeDB::can_instance(type)) + if (!ClassDB::can_instance(type)) continue; // cant create what can't be instanced if (filter->get_text()=="") add_type(type,types,root); @@ -806,14 +809,14 @@ void CreateDialog::update_tree() { bool found=false; String type=I->get(); - while(type!="" && ObjectTypeDB::is_type(type,base) && type!=base) { + while(type!="" && ClassDB::is_type(type,base) && type!=base) { if (type.findn(filter->get_text())!=-1) { found=true; break; } - type=ObjectTypeDB::type_inherits_from(type); + type=ClassDB::type_inherits_from(type); } @@ -875,7 +878,7 @@ Object *CreateDialog::instance_selected() { if (ct[i].name==name) { - Object* obj = ObjectTypeDB::instance(base); + Object* obj = ClassDB::instance(base); ERR_FAIL_COND_V(!obj,NULL); obj->set_script(ct[i].script.get_ref_ptr()); if (ct[i].icon.is_valid()) @@ -891,16 +894,16 @@ Object *CreateDialog::instance_selected() { } - return ObjectTypeDB::instance(tree->get_selected()->get_text(0)); + return ClassDB::instance(tree->get_selected()->get_text(0)); } void CreateDialog::_bind_methods() { - ObjectTypeDB::bind_method("_create",&CreateDialog::_create); - ObjectTypeDB::bind_method("_cancel",&CreateDialog::_cancel); - ObjectTypeDB::bind_method("_text_changed", &CreateDialog::_text_changed); + ClassDB::bind_method("_create",&CreateDialog::_create); + ClassDB::bind_method("_cancel",&CreateDialog::_cancel); + ClassDB::bind_method("_text_changed", &CreateDialog::_text_changed); ADD_SIGNAL( MethodInfo("create")); } @@ -929,7 +932,7 @@ CreateDialog::CreateDialog() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + get_ok()->set_text("Create"); diff --git a/tools/editor/create_dialog.h b/tools/editor/create_dialog.h index 706a06ae16..5ecb4db2c3 100644 --- a/tools/editor/create_dialog.h +++ b/tools/editor/create_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -45,7 +45,7 @@ class CreateDialog : public ConfirmationDialog { - OBJ_TYPE(CreateDialog,ConfirmationDialog ) + GDCLASS(CreateDialog,ConfirmationDialog ) Vector<String> favorite_list; @@ -108,7 +108,7 @@ public: class CreateDialog : public ConfirmationDialog { - OBJ_TYPE( CreateDialog, ConfirmationDialog ); + GDCLASS( CreateDialog, ConfirmationDialog ); Tree *tree; Button *create; diff --git a/tools/editor/dependency_editor.cpp b/tools/editor/dependency_editor.cpp index 049bcefc75..a01383a868 100644 --- a/tools/editor/dependency_editor.cpp +++ b/tools/editor/dependency_editor.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "dependency_editor.h" + #include "os/file_access.h" #include "scene/gui/margin_container.h" #include "io/resource_loader.h" @@ -250,9 +251,9 @@ void DependencyEditor::edit(const String& p_path) { void DependencyEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_searched"),&DependencyEditor::_searched); - ObjectTypeDB::bind_method(_MD("_load_pressed"),&DependencyEditor::_load_pressed); - ObjectTypeDB::bind_method(_MD("_fix_all"),&DependencyEditor::_fix_all); + ClassDB::bind_method(_MD("_searched"),&DependencyEditor::_searched); + ClassDB::bind_method(_MD("_load_pressed"),&DependencyEditor::_load_pressed); + ClassDB::bind_method(_MD("_fix_all"),&DependencyEditor::_fix_all); } @@ -261,7 +262,7 @@ DependencyEditor::DependencyEditor() { VBoxContainer *vb = memnew( VBoxContainer ); vb->set_name(TTR("Dependencies")); add_child(vb); - set_child_rect(vb); + tree = memnew( Tree ); tree->set_columns(2); @@ -354,7 +355,7 @@ DependencyEditorOwners::DependencyEditorOwners() { owners = memnew( ItemList ); add_child(owners); - set_child_rect(owners); + } @@ -459,7 +460,7 @@ DependencyRemoveDialog::DependencyRemoveDialog() { VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); - set_child_rect(vb); + text = memnew( Label ); vb->add_child(text); @@ -522,7 +523,7 @@ DependencyErrorDialog::DependencyErrorDialog() { VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); - set_child_rect(vb); + files = memnew( Tree ); @@ -690,8 +691,8 @@ void OrphanResourcesDialog::_button_pressed(Object *p_item,int p_column, int p_i void OrphanResourcesDialog::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_delete_confirm"),&OrphanResourcesDialog::_delete_confirm); - ObjectTypeDB::bind_method(_MD("_button_pressed"),&OrphanResourcesDialog::_button_pressed); + ClassDB::bind_method(_MD("_delete_confirm"),&OrphanResourcesDialog::_delete_confirm); + ClassDB::bind_method(_MD("_button_pressed"),&OrphanResourcesDialog::_button_pressed); } @@ -699,7 +700,7 @@ OrphanResourcesDialog::OrphanResourcesDialog(){ VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + files = memnew( Tree ); files->set_columns(2); files->set_column_titles_visible(true); diff --git a/tools/editor/dependency_editor.h b/tools/editor/dependency_editor.h index 60758f8f4e..a96ffe5fcf 100644 --- a/tools/editor/dependency_editor.h +++ b/tools/editor/dependency_editor.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ class EditorFileSystemDirectory; class DependencyEditor : public AcceptDialog { - OBJ_TYPE(DependencyEditor,AcceptDialog); + GDCLASS(DependencyEditor,AcceptDialog); Tree *tree; @@ -71,7 +71,7 @@ public: }; class DependencyEditorOwners : public AcceptDialog { - OBJ_TYPE(DependencyEditorOwners,AcceptDialog); + GDCLASS(DependencyEditorOwners,AcceptDialog); ItemList *owners; String editing; @@ -84,7 +84,7 @@ public: }; class DependencyRemoveDialog : public ConfirmationDialog { - OBJ_TYPE(DependencyRemoveDialog,ConfirmationDialog); + GDCLASS(DependencyRemoveDialog,ConfirmationDialog); Label *text; @@ -103,7 +103,7 @@ public: class DependencyErrorDialog : public ConfirmationDialog { - OBJ_TYPE(DependencyErrorDialog,ConfirmationDialog); + GDCLASS(DependencyErrorDialog,ConfirmationDialog); String for_file; @@ -122,7 +122,7 @@ public: class OrphanResourcesDialog : public ConfirmationDialog { - OBJ_TYPE(OrphanResourcesDialog,ConfirmationDialog); + GDCLASS(OrphanResourcesDialog,ConfirmationDialog); DependencyEditor *dep_edit; Tree *files; diff --git a/tools/editor/doc_code_font.h b/tools/editor/doc_code_font.h index 879c873ea1..55f335ab78 100644 --- a/tools/editor/doc_code_font.h +++ b/tools/editor/doc_code_font.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/doc_font.h b/tools/editor/doc_font.h index a3c3b58b21..b598ee26f8 100644 --- a/tools/editor/doc_font.h +++ b/tools/editor/doc_font.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/doc_title_font.h b/tools/editor/doc_title_font.h index 75a3f049f0..afa0f61eda 100644 --- a/tools/editor/doc_title_font.h +++ b/tools/editor/doc_title_font.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/editor_asset_installer.cpp b/tools/editor/editor_asset_installer.cpp index b6051886c0..8af01012a4 100644 --- a/tools/editor/editor_asset_installer.cpp +++ b/tools/editor/editor_asset_installer.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,10 +27,12 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_asset_installer.h" + #include "io/zip_io.h" #include "os/dir_access.h" #include "os/file_access.h" #include "editor_node.h" + void EditorAssetInstaller::_update_subitems(TreeItem* p_item,bool p_check,bool p_first) { @@ -196,7 +198,7 @@ void EditorAssetInstaller::open(const String& p_path,int p_depth) { ti->set_icon(0,get_icon("folder","FileDialog")); } else { String file = path.get_file(); - String extension = file.extension().to_lower(); + String extension = file.get_extension().to_lower(); if (extension_guess.has(extension)) { ti->set_icon(0,extension_guess[extension]); } else { @@ -331,7 +333,7 @@ void EditorAssetInstaller::ok_pressed() { void EditorAssetInstaller::_bind_methods() { - ObjectTypeDB::bind_method("_item_edited",&EditorAssetInstaller::_item_edited); + ClassDB::bind_method("_item_edited",&EditorAssetInstaller::_item_edited); } @@ -339,7 +341,7 @@ EditorAssetInstaller::EditorAssetInstaller() { VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); - set_child_rect(vb); + tree = memnew( Tree ); vb->add_margin_child("Package Contents:",tree,true); diff --git a/tools/editor/editor_asset_installer.h b/tools/editor/editor_asset_installer.h index d6e71dbb3c..2d0486a6f6 100644 --- a/tools/editor/editor_asset_installer.h +++ b/tools/editor/editor_asset_installer.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -34,7 +34,7 @@ #include "scene/gui/tree.h" class EditorAssetInstaller : public ConfirmationDialog { - OBJ_TYPE( EditorAssetInstaller, ConfirmationDialog ); + GDCLASS( EditorAssetInstaller, ConfirmationDialog ); Tree *tree; String package_path; diff --git a/tools/editor/editor_audio_buses.cpp b/tools/editor/editor_audio_buses.cpp new file mode 100644 index 0000000000..6ee18f08d8 --- /dev/null +++ b/tools/editor/editor_audio_buses.cpp @@ -0,0 +1,1192 @@ +#include "editor_audio_buses.h" +#include "editor_node.h" +#include "servers/audio_server.h" +#include "os/keyboard.h" +#include "io/resource_saver.h" +#include "filesystem_dock.h" + +void EditorAudioBus::_notification(int p_what) { + + if (p_what==NOTIFICATION_READY) { + + vu_l->set_under_texture(get_icon("BusVuEmpty","EditorIcons")); + vu_l->set_progress_texture(get_icon("BusVuFull","EditorIcons")); + vu_r->set_under_texture(get_icon("BusVuEmpty","EditorIcons")); + vu_r->set_progress_texture(get_icon("BusVuFull","EditorIcons")); + scale->set_texture( get_icon("BusVuDb","EditorIcons")); + + disabled_vu = get_icon("BusVuFrozen","EditorIcons"); + + prev_active=true; + update_bus(); + set_process(true); + } + + if (p_what==NOTIFICATION_DRAW) { + + if (has_focus()) { + draw_style_box(get_stylebox("focus","Button"),Rect2(Vector2(),get_size())); + } + } + + if (p_what==NOTIFICATION_PROCESS) { + + float real_peak[2]={-100,-100}; + bool activity_found=false; + + int cc; + switch(AudioServer::get_singleton()->get_speaker_mode()) { + case AudioServer::SPEAKER_MODE_STEREO: cc = 1; break; + case AudioServer::SPEAKER_SURROUND_51: cc = 4; break; + case AudioServer::SPEAKER_SURROUND_71: cc = 5; break; + } + + for(int i=0;i<cc;i++) { + if (AudioServer::get_singleton()->is_bus_channel_active(get_index(),i)) { + activity_found=true; + real_peak[0]=MAX(real_peak[0],AudioServer::get_singleton()->get_bus_peak_volume_left_db(get_index(),i)); + real_peak[1]=MAX(real_peak[1],AudioServer::get_singleton()->get_bus_peak_volume_right_db(get_index(),i)); + } + } + + + if (real_peak[0]>peak_l) { + peak_l = real_peak[0]; + } else { + peak_l-=get_process_delta_time()*60.0; + } + + if (real_peak[1]>peak_r) { + peak_r = real_peak[1]; + } else { + peak_r-=get_process_delta_time()*60.0; + + } + + vu_l->set_value(peak_l); + vu_r->set_value(peak_r); + + if (activity_found!=prev_active) { + if (activity_found) { + vu_l->set_over_texture(Ref<Texture>()); + vu_r->set_over_texture(Ref<Texture>()); + } else { + vu_l->set_over_texture(disabled_vu); + vu_r->set_over_texture(disabled_vu); + + } + + prev_active=activity_found; + } + + } + + if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { + + peak_l=-100; + peak_r=-100; + prev_active=true; + + set_process(is_visible_in_tree()); + } + +} + +void EditorAudioBus::update_send() { + + send->clear(); + if (get_index()==0) { + send->set_disabled(true); + send->set_text("Speakers"); + } else { + send->set_disabled(false); + StringName current_send = AudioServer::get_singleton()->get_bus_send(get_index()); + int current_send_index=0; //by default to master + + for(int i=0;i<get_index();i++) { + StringName send_name = AudioServer::get_singleton()->get_bus_name(i); + send->add_item(send_name); + if (send_name==current_send) { + current_send_index=i; + } + } + + send->select(current_send_index); + } +} + +void EditorAudioBus::update_bus() { + + if (updating_bus) + return; + + updating_bus=true; + + int index = get_index(); + + slider->set_value(AudioServer::get_singleton()->get_bus_volume_db(index)); + track_name->set_text(AudioServer::get_singleton()->get_bus_name(index)); + if (get_index()==0) + track_name->set_editable(false); + + solo->set_pressed( AudioServer::get_singleton()->is_bus_solo(index)); + mute->set_pressed( AudioServer::get_singleton()->is_bus_mute(index)); + bypass->set_pressed( AudioServer::get_singleton()->is_bus_bypassing_effects(index)); + // effects.. + effects->clear(); + + TreeItem *root = effects->create_item(); + for(int i=0;i<AudioServer::get_singleton()->get_bus_effect_count(index);i++) { + + Ref<AudioEffect> afx = AudioServer::get_singleton()->get_bus_effect(index,i); + + TreeItem *fx = effects->create_item(root); + fx->set_cell_mode(0,TreeItem::CELL_MODE_CHECK); + fx->set_editable(0,true); + fx->set_checked(0,AudioServer::get_singleton()->is_bus_effect_enabled(index,i)); + fx->set_text(0,afx->get_name()); + fx->set_metadata(0,i); + + } + + TreeItem *add = effects->create_item(root); + add->set_cell_mode(0,TreeItem::CELL_MODE_CUSTOM); + add->set_editable(0,true); + add->set_selectable(0,false); + add->set_text(0,"Add Effect"); + + update_send(); + + updating_bus=false; + +} + + +void EditorAudioBus::_name_changed(const String& p_new_name) { + + if (p_new_name==AudioServer::get_singleton()->get_bus_name(get_index())) + return; + + String attempt=p_new_name; + int attempts=1; + + while(true) { + + bool name_free=true; + for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) { + + if (AudioServer::get_singleton()->get_bus_name(i)==attempt) { + name_free=false; + break; + } + } + + if (name_free) { + break; + } + + attempts++; + attempt=p_new_name+" "+itos(attempts); + } + updating_bus=true; + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + + StringName current = AudioServer::get_singleton()->get_bus_name(get_index()); + ur->create_action("Rename Audio Bus"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_name",get_index(),attempt); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_name",get_index(),current); + + for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) { + if (AudioServer::get_singleton()->get_bus_send(i)==current) { + ur->add_do_method(AudioServer::get_singleton(),"set_bus_send",i,attempt); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_send",i,current); + } + } + + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + + + ur->add_do_method(buses,"_update_sends"); + ur->add_undo_method(buses,"_update_sends"); + ur->commit_action(); + + updating_bus=false; + +} + +void EditorAudioBus::_volume_db_changed(float p_db){ + + if (updating_bus) + return; + + updating_bus=true; + + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Change Audio Bus Volume",UndoRedo::MERGE_ENDS); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_volume_db",get_index(),p_db); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_volume_db",get_index(),AudioServer::get_singleton()->get_bus_volume_db(get_index())); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); + + updating_bus=false; + +} +void EditorAudioBus::_solo_toggled(){ + + updating_bus=true; + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Toggle Audio Bus Solo"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_solo",get_index(),solo->is_pressed()); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_solo",get_index(),AudioServer::get_singleton()->is_bus_solo(get_index())); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); + + updating_bus=false; + +} +void EditorAudioBus::_mute_toggled(){ + + updating_bus=true; + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Toggle Audio Bus Mute"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_mute",get_index(),mute->is_pressed()); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_mute",get_index(),AudioServer::get_singleton()->is_bus_mute(get_index())); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); + + updating_bus=false; + +} +void EditorAudioBus::_bypass_toggled(){ + + updating_bus=true; + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Toggle Audio Bus Bypass Effects"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_bypass_effects",get_index(),bypass->is_pressed()); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_bypass_effects",get_index(),AudioServer::get_singleton()->is_bus_bypassing_effects(get_index())); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); + + updating_bus=false; + + +} + +void EditorAudioBus::_send_selected(int p_which) { + + updating_bus=true; + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Select Audio Bus Send"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_send",get_index(),send->get_item_text(p_which)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_send",get_index(),AudioServer::get_singleton()->get_bus_send(get_index())); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); + + updating_bus=false; +} + +void EditorAudioBus::_effect_selected() { + + TreeItem *effect = effects->get_selected(); + if (!effect) + return; + updating_bus=true; + + if (effect->get_metadata(0)!=Variant()) { + + int index = effect->get_metadata(0); + Ref<AudioEffect> effect = AudioServer::get_singleton()->get_bus_effect(get_index(),index); + if (effect.is_valid()) { + EditorNode::get_singleton()->push_item(effect.ptr()); + } + } + + updating_bus=false; + +} + +void EditorAudioBus::_effect_edited() { + + if (updating_bus) + return; + + TreeItem *effect = effects->get_edited(); + if (!effect) + return; + + if (effect->get_metadata(0)==Variant()) { + Rect2 area = effects->get_item_rect(effect); + + effect_options->set_pos(effects->get_global_pos()+area.pos+Vector2(0,area.size.y)); + effect_options->popup(); + //add effect + } else { + int index = effect->get_metadata(0); + updating_bus=true; + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Select Audio Bus Send"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),index,effect->is_checked(0)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),index,AudioServer::get_singleton()->is_bus_effect_enabled(get_index(),index)); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); + + updating_bus=false; + + } + +} + +void EditorAudioBus::_effect_add(int p_which) { + + if (updating_bus) + return; + + StringName name = effect_options->get_item_metadata(p_which); + + Object *fx = ClassDB::instance(name); + ERR_FAIL_COND(!fx); + AudioEffect *afx = fx->cast_to<AudioEffect>(); + ERR_FAIL_COND(!afx); + Ref<AudioEffect> afxr = Ref<AudioEffect>(afx); + + afxr->set_name(effect_options->get_item_text(p_which)); + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Add Audio Bus Effect"); + ur->add_do_method(AudioServer::get_singleton(),"add_bus_effect",get_index(),afxr,-1); + ur->add_undo_method(AudioServer::get_singleton(),"remove_bus_effect",get_index(),AudioServer::get_singleton()->get_bus_effect_count(get_index())); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); +} + +void EditorAudioBus::_gui_input(const InputEvent& p_event) { + + if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode==KEY_DELETE && !p_event.key.echo) { + accept_event(); + emit_signal("delete_request"); + } + if (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==2 && p_event.mouse_button.pressed) { + + Vector2 pos = Vector2(p_event.mouse_button.x,p_event.mouse_button.y); + delete_popup->set_pos(get_global_pos()+pos); + delete_popup->popup(); + } +} + +void EditorAudioBus::_delete_pressed(int p_option) { + + if (p_option==1) { + emit_signal("delete_request"); + } else if (p_option==0) { + //duplicate + emit_signal("duplicate_request",get_index()); + } + +} + + +Variant EditorAudioBus::get_drag_data(const Point2& p_point) { + + if (get_index()==0) { + return Variant(); + } + + Control *c = memnew(Control); + Panel *p = memnew( Panel ); + c->add_child(p); + p->add_style_override("panel",get_stylebox("focus","Button")); + p->set_size(get_size()); + p->set_pos(-p_point); + set_drag_preview(c); + Dictionary d; + d["type"]="move_audio_bus"; + d["index"]=get_index(); + emit_signal("drop_end_request"); + return d; +} + +bool EditorAudioBus::can_drop_data(const Point2& p_point,const Variant& p_data) const { + + if (get_index()==0) + return false; + Dictionary d=p_data; + if (d.has("type") && String(d["type"])=="move_audio_bus") { + return true; + } + + return false; +} +void EditorAudioBus::drop_data(const Point2& p_point,const Variant& p_data) { + + Dictionary d=p_data; + emit_signal("dropped",d["index"],get_index()); + +} + +Variant EditorAudioBus::get_drag_data_fw(const Point2& p_point,Control* p_from) { + + print_line("drag fw"); + TreeItem *item = effects->get_item_at_pos(p_point); + if (!item) { + print_line("no item"); + return Variant(); + } + + Variant md = item->get_metadata(0); + + if (md.get_type()==Variant::INT) { + Dictionary fxd; + fxd["type"]="audio_bus_effect"; + fxd["bus"]=get_index(); + fxd["effect"]=md; + + Label *l = memnew( Label ); + l->set_text(item->get_text(0)); + effects->set_drag_preview(l); + + return fxd; + } + + return Variant(); + +} + +bool EditorAudioBus::can_drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from) const{ + + Dictionary d = p_data; + if (!d.has("type") || String(d["type"])!="audio_bus_effect") + return false; + + TreeItem *item = effects->get_item_at_pos(p_point); + if (!item) + return false; + + effects->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN); + + return true; +} + +void EditorAudioBus::drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from){ + + Dictionary d = p_data; + + TreeItem *item = effects->get_item_at_pos(p_point); + if (!item) + return; + int pos=effects->get_drop_section_at_pos(p_point); + Variant md = item->get_metadata(0); + + int paste_at; + int bus = d["bus"]; + int effect = d["effect"]; + + if (md.get_type()==Variant::INT) { + paste_at=md; + if (pos>0) + paste_at++; + + if (bus==get_index() && paste_at >effect) { + paste_at--; + } + } else { + paste_at=-1; + } + + + bool enabled = AudioServer::get_singleton()->is_bus_effect_enabled(bus,effect); + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Move Bus Effect"); + ur->add_do_method(AudioServer::get_singleton(),"remove_bus_effect",bus,effect); + ur->add_do_method(AudioServer::get_singleton(),"add_bus_effect",get_index(),AudioServer::get_singleton()->get_bus_effect(bus,effect),paste_at); + + if (paste_at==-1) { + paste_at = AudioServer::get_singleton()->get_bus_effect_count(get_index()); + if (bus==get_index()) { + paste_at--; + } + } + if (!enabled) { + ur->add_do_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),paste_at,false); + } + + ur->add_undo_method(AudioServer::get_singleton(),"remove_bus_effect",get_index(),paste_at); + ur->add_undo_method(AudioServer::get_singleton(),"add_bus_effect",bus,AudioServer::get_singleton()->get_bus_effect(bus,effect),effect); + if (!enabled) { + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",bus,effect,false); + } + + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + if (get_index()!=bus) { + ur->add_do_method(buses,"_update_bus",bus); + ur->add_undo_method(buses,"_update_bus",bus); + } + ur->commit_action(); + + + +} + +void EditorAudioBus::_delete_effect_pressed(int p_option) { + + TreeItem * item = effects->get_selected(); + if (!item) + return; + + if (item->get_metadata(0).get_type()!=Variant::INT) + return; + + int index = item->get_metadata(0); + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Delete Bus Effect"); + ur->add_do_method(AudioServer::get_singleton(),"remove_bus_effect",get_index(),index); + ur->add_undo_method(AudioServer::get_singleton(),"add_bus_effect",get_index(),AudioServer::get_singleton()->get_bus_effect(get_index(),index),index); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),index,AudioServer::get_singleton()->is_bus_effect_enabled(get_index(),index)); + ur->add_do_method(buses,"_update_bus",get_index()); + ur->add_undo_method(buses,"_update_bus",get_index()); + ur->commit_action(); + + +} + +void EditorAudioBus::_effect_rmb(const Vector2& p_pos) { + + TreeItem * item = effects->get_selected(); + if (!item) + return; + + if (item->get_metadata(0).get_type()!=Variant::INT) + return; + + delete_effect_popup->set_pos(get_global_mouse_pos()); + delete_effect_popup->popup(); +} + +void EditorAudioBus::_bind_methods() { + + ClassDB::bind_method("update_bus",&EditorAudioBus::update_bus); + ClassDB::bind_method("update_send",&EditorAudioBus::update_send); + ClassDB::bind_method("_name_changed",&EditorAudioBus::_name_changed); + ClassDB::bind_method("_volume_db_changed",&EditorAudioBus::_volume_db_changed); + ClassDB::bind_method("_solo_toggled",&EditorAudioBus::_solo_toggled); + ClassDB::bind_method("_mute_toggled",&EditorAudioBus::_mute_toggled); + ClassDB::bind_method("_bypass_toggled",&EditorAudioBus::_bypass_toggled); + ClassDB::bind_method("_name_focus_exit",&EditorAudioBus::_name_focus_exit); + ClassDB::bind_method("_send_selected",&EditorAudioBus::_send_selected); + ClassDB::bind_method("_effect_edited",&EditorAudioBus::_effect_edited); + ClassDB::bind_method("_effect_selected",&EditorAudioBus::_effect_selected); + ClassDB::bind_method("_effect_add",&EditorAudioBus::_effect_add); + ClassDB::bind_method("_gui_input",&EditorAudioBus::_gui_input); + ClassDB::bind_method("_delete_pressed",&EditorAudioBus::_delete_pressed); + ClassDB::bind_method("get_drag_data_fw",&EditorAudioBus::get_drag_data_fw); + ClassDB::bind_method("can_drop_data_fw",&EditorAudioBus::can_drop_data_fw); + ClassDB::bind_method("drop_data_fw",&EditorAudioBus::drop_data_fw); + ClassDB::bind_method("_delete_effect_pressed",&EditorAudioBus::_delete_effect_pressed); + ClassDB::bind_method("_effect_rmb",&EditorAudioBus::_effect_rmb); + + + + ADD_SIGNAL(MethodInfo("duplicate_request")); + ADD_SIGNAL(MethodInfo("delete_request")); + ADD_SIGNAL(MethodInfo("drop_end_request")); + ADD_SIGNAL(MethodInfo("dropped")); + +} + +EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses) { + + buses=p_buses; + updating_bus=false; + + VBoxContainer *vb = memnew( VBoxContainer ); + add_child(vb); + + set_v_size_flags(SIZE_EXPAND_FILL); + + track_name = memnew( LineEdit ); + vb->add_child(track_name); + track_name->connect("text_entered",this,"_name_changed"); + track_name->connect("focus_exited",this,"_name_focus_exit"); + + HBoxContainer *hbc = memnew( HBoxContainer); + vb->add_child(hbc); + hbc->add_spacer(); + solo = memnew( ToolButton ); + solo->set_text("S"); + solo->set_toggle_mode(true); + solo->set_modulate(Color(0.8,1.2,0.8)); + solo->set_focus_mode(FOCUS_NONE); + solo->connect("pressed",this,"_solo_toggled"); + hbc->add_child(solo); + mute = memnew( ToolButton ); + mute->set_text("M"); + mute->set_toggle_mode(true); + mute->set_modulate(Color(1.2,0.8,0.8)); + mute->set_focus_mode(FOCUS_NONE); + mute->connect("pressed",this,"_mute_toggled"); + hbc->add_child(mute); + bypass = memnew( ToolButton ); + bypass->set_text("B"); + bypass->set_toggle_mode(true); + bypass->set_modulate(Color(1.1,1.1,0.8)); + bypass->set_focus_mode(FOCUS_NONE); + bypass->connect("pressed",this,"_bypass_toggled"); + hbc->add_child(bypass); + hbc->add_spacer(); + + HBoxContainer *hb = memnew( HBoxContainer ); + vb->add_child(hb); + slider = memnew( VSlider ); + slider->set_min(-80); + slider->set_max(24); + slider->set_step(0.1); + + slider->connect("value_changed",this,"_volume_db_changed"); + hb->add_child(slider); + vu_l = memnew( TextureProgress ); + vu_l->set_fill_mode(TextureProgress::FILL_BOTTOM_TO_TOP); + hb->add_child(vu_l); + vu_l->set_min(-80); + vu_l->set_max(24); + vu_l->set_step(0.1); + + vu_r = memnew( TextureProgress ); + vu_r->set_fill_mode(TextureProgress::FILL_BOTTOM_TO_TOP); + hb->add_child(vu_r); + vu_r->set_min(-80); + vu_r->set_max(24); + vu_r->set_step(0.1); + + scale = memnew( TextureRect ); + hb->add_child(scale); + + //add_child(hb); + + effects = memnew( Tree ); + effects->set_hide_root(true); + effects->set_custom_minimum_size(Size2(0,90)*EDSCALE); + effects->set_hide_folding(true); + vb->add_child(effects); + effects->connect("item_edited",this,"_effect_edited"); + effects->connect("cell_selected",this,"_effect_selected"); + effects->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); + effects->set_drag_forwarding(this); + effects->connect("item_rmb_selected",this,"_effect_rmb"); + effects->set_allow_rmb_select(true); + + send = memnew( OptionButton ); + send->set_clip_text(true); + send->connect("item_selected",this,"_send_selected"); + vb->add_child(send); + + set_focus_mode(FOCUS_CLICK); + + effect_options = memnew( PopupMenu ); + effect_options->connect("index_pressed",this,"_effect_add"); + add_child(effect_options); + List<StringName> effects; + ClassDB::get_inheriters_from_class("AudioEffect",&effects); + effects.sort_custom<StringName::AlphCompare>(); + for (List<StringName>::Element *E=effects.front();E;E=E->next()) { + if (!ClassDB::can_instance(E->get())) + continue; + + Ref<Texture> icon; + if (has_icon(E->get(),"EditorIcons")) { + icon = get_icon(E->get(),"EditorIcons"); + } + String name = E->get().operator String().replace("AudioEffect",""); + effect_options->add_item(name); + effect_options->set_item_metadata(effect_options->get_item_count()-1,E->get()); + effect_options->set_item_icon(effect_options->get_item_count()-1,icon); + } + + delete_popup = memnew( PopupMenu ); + delete_popup->add_item("Duplicate"); + delete_popup->add_item("Delete"); + add_child(delete_popup); + delete_popup->connect("index_pressed",this,"_delete_pressed"); + + delete_effect_popup = memnew( PopupMenu ); + delete_effect_popup->add_item("Delete Effect"); + add_child(delete_effect_popup); + delete_effect_popup->connect("index_pressed",this,"_delete_effect_pressed"); + +} + + + +bool EditorAudioBusDrop::can_drop_data(const Point2& p_point,const Variant& p_data) const { + + Dictionary d=p_data; + if (d.has("type") && String(d["type"])=="move_audio_bus") { + return true; + } + + return false; +} +void EditorAudioBusDrop::drop_data(const Point2& p_point,const Variant& p_data){ + + Dictionary d=p_data; + emit_signal("dropped",d["index"],-1); + +} + +void EditorAudioBusDrop::_bind_methods() { + + ADD_SIGNAL(MethodInfo("dropped")); +} + +EditorAudioBusDrop::EditorAudioBusDrop() { + + +} + + +void EditorAudioBuses::_update_buses() { + + while(bus_hb->get_child_count()>0) { + memdelete(bus_hb->get_child(0)); + } + + drop_end=NULL; + + for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) { + + EditorAudioBus *audio_bus = memnew( EditorAudioBus(this) ); + if (i==0) { + audio_bus->set_self_modulate(Color(1,0.9,0.9)); + } + bus_hb->add_child(audio_bus); + audio_bus->connect("delete_request",this,"_delete_bus",varray(audio_bus),CONNECT_DEFERRED); + audio_bus->connect("duplicate_request",this,"_duplicate_bus",varray(),CONNECT_DEFERRED); + audio_bus->connect("drop_end_request",this,"_request_drop_end"); + audio_bus->connect("dropped",this,"_drop_at_index",varray(),CONNECT_DEFERRED); + + + + } +} + +EditorAudioBuses *EditorAudioBuses::register_editor() { + + EditorAudioBuses * audio_buses = memnew( EditorAudioBuses ); + EditorNode::get_singleton()->add_bottom_panel_item("Audio",audio_buses); + return audio_buses; +} + +void EditorAudioBuses::_notification(int p_what) { + + if (p_what==NOTIFICATION_READY) { + _update_buses(); + } + + if (p_what==NOTIFICATION_DRAG_END) { + if (drop_end) { + drop_end->queue_delete(); + drop_end=NULL; + } + } + + if (p_what==NOTIFICATION_PROCESS) { + + //check if anything was edited + bool edited = AudioServer::get_singleton()->is_edited(); + for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) { + for(int j=0;j<AudioServer::get_singleton()->get_bus_effect_count(i);j++) { + Ref<AudioEffect> effect = AudioServer::get_singleton()->get_bus_effect(i,j); + if (effect->is_edited()) { + edited=true; + effect->set_edited(false); + } + } + } + + AudioServer::get_singleton()->set_edited(false); + + if (edited) { + + save_timer->start(); + } + } + +} + + +void EditorAudioBuses::_add_bus() { + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + + //need to simulate new name, so we can undi :( + ur->create_action("Add Audio Bus"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_count",AudioServer::get_singleton()->get_bus_count()+1); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_count",AudioServer::get_singleton()->get_bus_count()); + ur->add_do_method(this,"_update_buses"); + ur->add_undo_method(this,"_update_buses"); + ur->commit_action(); + +} + +void EditorAudioBuses::_update_bus(int p_index) { + + if (p_index>=bus_hb->get_child_count()) + return; + + bus_hb->get_child(p_index)->call("update_bus"); +} + +void EditorAudioBuses::_update_sends() { + + for(int i=0;i<bus_hb->get_child_count();i++) { + bus_hb->get_child(i)->call("update_send"); + } +} + +void EditorAudioBuses::_delete_bus(Object* p_which) { + + EditorAudioBus *bus = p_which->cast_to<EditorAudioBus>(); + int index = bus->get_index(); + if (index==0) { + EditorNode::get_singleton()->show_warning("Master bus can't be deleted!"); + return; + } + + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + + ur->create_action("Delete Audio Bus"); + ur->add_do_method(AudioServer::get_singleton(),"remove_bus",index); + ur->add_undo_method(AudioServer::get_singleton(),"add_bus",index); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_name",index,AudioServer::get_singleton()->get_bus_name(index)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_volume_db",index,AudioServer::get_singleton()->get_bus_volume_db(index)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_send",index,AudioServer::get_singleton()->get_bus_send(index)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_solo",index,AudioServer::get_singleton()->is_bus_solo(index)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_mute",index,AudioServer::get_singleton()->is_bus_mute(index)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_bypass_effects",index,AudioServer::get_singleton()->is_bus_bypassing_effects(index)); + for(int i=0;i<AudioServer::get_singleton()->get_bus_effect_count(index);i++) { + + ur->add_undo_method(AudioServer::get_singleton(),"add_bus_effect",index,AudioServer::get_singleton()->get_bus_effect(index,i)); + ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",index,i,AudioServer::get_singleton()->is_bus_effect_enabled(index,i)); + } + ur->add_do_method(this,"_update_buses"); + ur->add_undo_method(this,"_update_buses"); + ur->commit_action(); + +} + + +void EditorAudioBuses::_duplicate_bus(int p_which) { + + int add_at_pos = p_which+1; + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action("Duplicate Audio Bus"); + ur->add_do_method(AudioServer::get_singleton(),"add_bus",add_at_pos); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_name",add_at_pos,AudioServer::get_singleton()->get_bus_name(p_which)+" Copy"); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_volume_db",add_at_pos,AudioServer::get_singleton()->get_bus_volume_db(p_which)); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_send",add_at_pos,AudioServer::get_singleton()->get_bus_send(p_which)); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_solo",add_at_pos,AudioServer::get_singleton()->is_bus_solo(p_which)); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_mute",add_at_pos,AudioServer::get_singleton()->is_bus_mute(p_which)); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_bypass_effects",add_at_pos,AudioServer::get_singleton()->is_bus_bypassing_effects(p_which)); + for(int i=0;i<AudioServer::get_singleton()->get_bus_effect_count(p_which);i++) { + + ur->add_do_method(AudioServer::get_singleton(),"add_bus_effect",add_at_pos,AudioServer::get_singleton()->get_bus_effect(p_which,i)); + ur->add_do_method(AudioServer::get_singleton(),"set_bus_effect_enabled",add_at_pos,i,AudioServer::get_singleton()->is_bus_effect_enabled(p_which,i)); + } + ur->add_undo_method(AudioServer::get_singleton(),"remove_bus",add_at_pos); + ur->add_do_method(this,"_update_buses"); + ur->add_undo_method(this,"_update_buses"); + ur->commit_action(); + +} + +void EditorAudioBuses::_request_drop_end() { + + if (!drop_end && bus_hb->get_child_count()) { + drop_end = memnew( EditorAudioBusDrop ); + + bus_hb->add_child(drop_end); + drop_end->set_custom_minimum_size(bus_hb->get_child(0)->cast_to<Control>()->get_size()); + drop_end->connect("dropped",this,"_drop_at_index",varray(),CONNECT_DEFERRED); + } +} + +void EditorAudioBuses::_drop_at_index(int p_bus,int p_index) { + + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + + //need to simulate new name, so we can undi :( + ur->create_action("Move Audio Bus"); + ur->add_do_method(AudioServer::get_singleton(),"move_bus",p_bus,p_index); + int final_pos; + if (p_index==p_bus) { + final_pos=p_bus; + } else if (p_index==-1) { + final_pos = AudioServer::get_singleton()->get_bus_count()-1; + } else if (p_index<p_bus) { + final_pos = p_index; + } else { + final_pos = p_index -1; + } + ur->add_undo_method(AudioServer::get_singleton(),"move_bus",final_pos,p_bus); + + ur->add_do_method(this,"_update_buses"); + ur->add_undo_method(this,"_update_buses"); + ur->commit_action(); +} + +void EditorAudioBuses::_server_save() { + + Ref<AudioBusLayout> state = AudioServer::get_singleton()->generate_bus_layout(); + ResourceSaver::save(edited_path,state); + +} + +void EditorAudioBuses::_select_layout() { + + EditorNode::get_singleton()->get_filesystem_dock()->select_file(edited_path); +} + +void EditorAudioBuses::_save_as_layout() { + + file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); + file_dialog->set_title(TTR("Save Audio Bus Layout As..")); + file_dialog->set_current_path(edited_path); + file_dialog->popup_centered_ratio(); + new_layout=false; +} + + +void EditorAudioBuses::_new_layout() { + + file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); + file_dialog->set_title(TTR("Location for New Layout..")); + file_dialog->set_current_path(edited_path); + file_dialog->popup_centered_ratio(); + new_layout=true; +} + +void EditorAudioBuses::_load_layout() { + + file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE); + file_dialog->set_title(TTR("Open Audio Bus Layout")); + file_dialog->set_current_path(edited_path); + file_dialog->popup_centered_ratio(); + new_layout=false; +} + + +void EditorAudioBuses::_load_default_layout() { + + + Ref<AudioBusLayout> state = ResourceLoader::load("res://default_bus_layout.tres"); + if (state.is_null()) { + EditorNode::get_singleton()->show_warning("There is no 'res://default_bus_layout.tres' file."); + return; + } + + edited_path="res://default_bus_layout.tres"; + file->set_text(edited_path.get_file()); + AudioServer::get_singleton()->set_bus_layout(state); + _update_buses(); + EditorNode::get_singleton()->get_undo_redo()->clear_history(); + call_deferred("_select_layout"); +} + +void EditorAudioBuses::_file_dialog_callback(const String& p_string) { + + if (file_dialog->get_mode()==EditorFileDialog::MODE_OPEN_FILE) { + Ref<AudioBusLayout> state = ResourceLoader::load(p_string); + if (state.is_null()) { + EditorNode::get_singleton()->show_warning("Invalid file, not an audio bus layout."); + return; + } + + edited_path=p_string; + file->set_text(p_string.get_file()); + AudioServer::get_singleton()->set_bus_layout(state); + _update_buses(); + EditorNode::get_singleton()->get_undo_redo()->clear_history(); + call_deferred("_select_layout"); + + } else if (file_dialog->get_mode()==EditorFileDialog::MODE_SAVE_FILE) { + + if (new_layout) { + Ref<AudioBusLayout> empty_state; + empty_state.instance(); + AudioServer::get_singleton()->set_bus_layout(empty_state); + } + + Error err = ResourceSaver::save(p_string,AudioServer::get_singleton()->generate_bus_layout()); + + if (err!=OK) { + EditorNode::get_singleton()->show_warning("Error saving file: "+p_string); + return; + } + + edited_path=p_string; + file->set_text(p_string.get_file()); + _update_buses(); + EditorNode::get_singleton()->get_undo_redo()->clear_history(); + call_deferred("_select_layout"); + } + +} + +void EditorAudioBuses::_bind_methods() { + + ClassDB::bind_method("_add_bus",&EditorAudioBuses::_add_bus); + ClassDB::bind_method("_update_buses",&EditorAudioBuses::_update_buses); + ClassDB::bind_method("_update_bus",&EditorAudioBuses::_update_bus); + ClassDB::bind_method("_update_sends",&EditorAudioBuses::_update_sends); + ClassDB::bind_method("_delete_bus",&EditorAudioBuses::_delete_bus); + ClassDB::bind_method("_request_drop_end",&EditorAudioBuses::_request_drop_end); + ClassDB::bind_method("_drop_at_index",&EditorAudioBuses::_drop_at_index); + ClassDB::bind_method("_server_save",&EditorAudioBuses::_server_save); + ClassDB::bind_method("_select_layout",&EditorAudioBuses::_select_layout); + ClassDB::bind_method("_save_as_layout",&EditorAudioBuses::_save_as_layout); + ClassDB::bind_method("_load_layout",&EditorAudioBuses::_load_layout); + ClassDB::bind_method("_load_default_layout",&EditorAudioBuses::_load_default_layout); + ClassDB::bind_method("_new_layout",&EditorAudioBuses::_new_layout); + ClassDB::bind_method("_duplicate_bus",&EditorAudioBuses::_duplicate_bus); + + ClassDB::bind_method("_file_dialog_callback",&EditorAudioBuses::_file_dialog_callback); +} + +EditorAudioBuses::EditorAudioBuses() +{ + + drop_end = NULL; + top_hb = memnew( HBoxContainer ); + add_child(top_hb); + + add = memnew( Button ); + top_hb->add_child(add);; + add->set_text(TTR("Add Bus")); + + add->connect("pressed",this,"_add_bus"); + + + + top_hb->add_spacer(); + + file = memnew( ToolButton ); + file->set_text("default_bus_layout.tres"); + top_hb->add_child(file); + file->connect("pressed",this,"_select_layout"); + + load = memnew( Button ); + load->set_text(TTR("Load")); + top_hb->add_child(load); + load->connect("pressed",this,"_load_layout"); + + save_as = memnew( Button ); + save_as->set_text(TTR("Save As")); + top_hb->add_child(save_as); + save_as->connect("pressed",this,"_save_as_layout"); + + _default = memnew( Button ); + _default->set_text(TTR("Default")); + top_hb->add_child(_default); + _default->connect("pressed",this,"_load_default_layout"); + + _new = memnew( Button ); + _new->set_text(TTR("Create")); + top_hb->add_child(_new); + _new->connect("pressed",this,"_new_layout"); + + bus_scroll = memnew( ScrollContainer ); + bus_scroll->set_v_size_flags(SIZE_EXPAND_FILL); + bus_scroll->set_enable_h_scroll(true); + bus_scroll->set_enable_v_scroll(false); + add_child(bus_scroll); + bus_hb = memnew( HBoxContainer ); + bus_scroll->add_child(bus_hb); + + save_timer=memnew(Timer); + save_timer->set_wait_time(0.8); + save_timer->set_one_shot(true); + add_child(save_timer); + save_timer->connect("timeout",this,"_server_save"); + + set_v_size_flags(SIZE_EXPAND_FILL); + + + edited_path = "res://default_bus_layout.tres"; + + file_dialog = memnew( EditorFileDialog ); + List<String> ext; + ResourceLoader::get_recognized_extensions_for_type("AudioServerState",&ext); + for (List<String>::Element *E=ext.front();E;E=E->next()) { + file_dialog->add_filter("*."+E->get()+"; Audio Bus State"); + } + add_child(file_dialog); + file_dialog->connect("file_selected",this,"_file_dialog_callback"); + + set_process(true); + +} +void EditorAudioBuses::open_layout(const String& p_path) { + + EditorNode::get_singleton()->make_bottom_panel_item_visible(this); + + Ref<AudioBusLayout> state = ResourceLoader::load(p_path); + if (state.is_null()) { + EditorNode::get_singleton()->show_warning("Invalid file, not an audio bus layout."); + return; + } + + edited_path=p_path; + file->set_text(p_path.get_file()); + AudioServer::get_singleton()->set_bus_layout(state); + _update_buses(); + EditorNode::get_singleton()->get_undo_redo()->clear_history(); + call_deferred("_select_layout"); +} + +void AudioBusesEditorPlugin::edit(Object *p_node) { + + if (p_node->cast_to<AudioBusLayout>()) { + + String path = p_node->cast_to<AudioBusLayout>()->get_path(); + if (path.is_resource_file()) { + audio_bus_editor->open_layout(path); + } + } +} + +bool AudioBusesEditorPlugin::handles(Object *p_node) const { + + return (p_node->cast_to<AudioBusLayout>()!=NULL); +} + +void AudioBusesEditorPlugin::make_visible(bool p_visible){ + + +} + +AudioBusesEditorPlugin::AudioBusesEditorPlugin(EditorAudioBuses *p_node) { + + audio_bus_editor=p_node; +} + +AudioBusesEditorPlugin::~AudioBusesEditorPlugin() { + +} diff --git a/tools/editor/editor_audio_buses.h b/tools/editor/editor_audio_buses.h new file mode 100644 index 0000000000..e44f8cd579 --- /dev/null +++ b/tools/editor/editor_audio_buses.h @@ -0,0 +1,186 @@ +#ifndef EDITORAUDIOBUSES_H +#define EDITORAUDIOBUSES_H + + +#include "scene/gui/box_container.h" +#include "scene/gui/button.h" +#include "scene/gui/tool_button.h" +#include "scene/gui/scroll_container.h" +#include "scene/gui/panel_container.h" +#include "scene/gui/slider.h" +#include "scene/gui/texture_progress.h" +#include "scene/gui/texture_rect.h" +#include "scene/gui/line_edit.h" +#include "scene/gui/tree.h" +#include "scene/gui/option_button.h" +#include "scene/gui/panel.h" +#include "tools/editor/editor_file_dialog.h" +#include "editor_plugin.h" + +class EditorAudioBuses; + +class EditorAudioBus : public PanelContainer { + + GDCLASS( EditorAudioBus, PanelContainer ) + + bool prev_active; + float peak_l; + float peak_r; + + Ref<Texture> disabled_vu; + LineEdit *track_name; + VSlider *slider; + TextureProgress *vu_l; + TextureProgress *vu_r; + TextureRect *scale; + OptionButton *send; + + PopupMenu *effect_options; + PopupMenu *delete_popup; + PopupMenu *delete_effect_popup; + + Button *solo; + Button *mute; + Button *bypass; + + Tree *effects; + + bool updating_bus; + + void _gui_input(const InputEvent& p_event); + void _delete_pressed(int p_option); + + void _name_changed(const String& p_new_name); + void _name_focus_exit() { _name_changed(track_name->get_text()); } + void _volume_db_changed(float p_db); + void _solo_toggled(); + void _mute_toggled(); + void _bypass_toggled(); + void _send_selected(int p_which); + void _effect_edited(); + void _effect_add(int p_which); + void _effect_selected(); + void _delete_effect_pressed(int p_option); + void _effect_rmb(const Vector2& p_pos); + + + virtual Variant get_drag_data(const Point2& p_point); + virtual bool can_drop_data(const Point2& p_point,const Variant& p_data) const; + virtual void drop_data(const Point2& p_point,const Variant& p_data); + + + Variant get_drag_data_fw(const Point2& p_point,Control* p_from); + bool can_drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from) const; + void drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from); + +friend class EditorAudioBuses; + + EditorAudioBuses *buses; + +protected: + + static void _bind_methods(); + void _notification(int p_what); +public: + + void update_bus(); + void update_send(); + + EditorAudioBus(EditorAudioBuses *p_buses=NULL); +}; + + +class EditorAudioBusDrop : public Panel { + + GDCLASS(EditorAudioBusDrop,Panel); + + virtual bool can_drop_data(const Point2& p_point,const Variant& p_data) const; + virtual void drop_data(const Point2& p_point,const Variant& p_data); +protected: + + static void _bind_methods(); +public: + + EditorAudioBusDrop(); +}; + +class EditorAudioBuses : public VBoxContainer { + + GDCLASS(EditorAudioBuses,VBoxContainer) + + HBoxContainer *top_hb; + + Button *add; + ScrollContainer *bus_scroll; + HBoxContainer *bus_hb; + + EditorAudioBusDrop *drop_end; + + Button *file; + Button *load; + Button *save_as; + Button *_default; + Button *_new; + + Timer *save_timer; + String edited_path; + + void _add_bus(); + void _update_buses(); + void _update_bus(int p_index); + void _update_sends(); + + void _delete_bus(Object* p_which); + void _duplicate_bus(int p_which); + + + void _request_drop_end(); + void _drop_at_index(int p_bus,int p_index); + + void _server_save(); + + void _select_layout(); + void _load_layout(); + void _save_as_layout(); + void _load_default_layout(); + void _new_layout(); + + EditorFileDialog *file_dialog; + bool new_layout; + + void _file_dialog_callback(const String& p_string); + +protected: + + static void _bind_methods(); + void _notification(int p_what); +public: + + void open_layout(const String& p_path); + + static EditorAudioBuses* register_editor(); + + EditorAudioBuses(); +}; + + + +class AudioBusesEditorPlugin : public EditorPlugin { + + GDCLASS( AudioBusesEditorPlugin, EditorPlugin ); + + EditorAudioBuses *audio_bus_editor; +public: + + virtual String get_name() const { return "SampleLibrary"; } + bool has_main_screen() const { return false; } + virtual void edit(Object *p_node); + virtual bool handles(Object *p_node) const; + virtual void make_visible(bool p_visible); + + AudioBusesEditorPlugin(EditorAudioBuses *p_node); + ~AudioBusesEditorPlugin(); + +}; + +#endif // EDITORAUDIOBUSES_H diff --git a/tools/editor/editor_autoload_settings.cpp b/tools/editor/editor_autoload_settings.cpp index 97062b1480..0038ab48d5 100644 --- a/tools/editor/editor_autoload_settings.cpp +++ b/tools/editor/editor_autoload_settings.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,12 +26,10 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ - #include "editor_autoload_settings.h" #include "globals.h" #include "global_constants.h" - #include "editor_node.h" #define PREVIEW_LIST_MAX_SIZE 10 @@ -62,7 +60,7 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String& p_name, Strin return false; } - if (ObjectTypeDB::type_exists(p_name)) { + if (ClassDB::class_exists(p_name)) { if (r_error) *r_error = TTR("Invalid name. Must not collide with an existing engine class name."); @@ -116,13 +114,12 @@ void EditorAutoloadSettings::_autoload_add() { UndoRedo* undo_redo = EditorNode::get_singleton()->get_undo_redo(); undo_redo->create_action(TTR("Add AutoLoad")); - undo_redo->add_do_property(Globals::get_singleton(), name, "*" + path); - undo_redo->add_do_method(Globals::get_singleton(), "set_persisting", name, true); + undo_redo->add_do_property(GlobalConfig::get_singleton(), name, "*" + path); - if (Globals::get_singleton()->has(name)) { - undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name)); + if (GlobalConfig::get_singleton()->has(name)) { + undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name)); } else { - undo_redo->add_undo_property(Globals::get_singleton(), name, Variant()); + undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, Variant()); } undo_redo->add_do_method(this, "update_autoload"); @@ -171,7 +168,7 @@ void EditorAutoloadSettings::_autoload_edited() { return; } - if (Globals::get_singleton()->has("autoload/" + name)) { + if (GlobalConfig::get_singleton()->has("autoload/" + name)) { ti->set_text(0, old_name); EditorNode::get_singleton()->show_warning(vformat(TTR("Autoload '%s' already exists!"), name)); return; @@ -181,21 +178,18 @@ void EditorAutoloadSettings::_autoload_edited() { name = "autoload/" + name; - bool persisting = Globals::get_singleton()->get(selected_autoload); - int order = Globals::get_singleton()->get(selected_autoload); - String path = Globals::get_singleton()->get(selected_autoload); + int order = GlobalConfig::get_singleton()->get_order(selected_autoload); + String path = GlobalConfig::get_singleton()->get(selected_autoload); undo_redo->create_action(TTR("Rename Autoload")); - undo_redo->add_do_property(Globals::get_singleton(), name, path); - undo_redo->add_do_method(Globals::get_singleton(), "set_persisting", name, persisting); - undo_redo->add_do_method(Globals::get_singleton(), "set_order", name, order); - undo_redo->add_do_method(Globals::get_singleton(), "clear", selected_autoload); + undo_redo->add_do_property(GlobalConfig::get_singleton(), name, path); + undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", name, order); + undo_redo->add_do_method(GlobalConfig::get_singleton(), "clear", selected_autoload); - undo_redo->add_undo_property(Globals::get_singleton(), selected_autoload, path); - undo_redo->add_undo_method(Globals::get_singleton(), "set_persisting", selected_autoload, persisting); - undo_redo->add_undo_method(Globals::get_singleton(), "set_order", selected_autoload, order); - undo_redo->add_undo_method(Globals::get_singleton(), "clear", name); + undo_redo->add_undo_property(GlobalConfig::get_singleton(), selected_autoload, path); + undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", selected_autoload, order); + undo_redo->add_undo_method(GlobalConfig::get_singleton(), "clear", name); undo_redo->add_do_method(this, "update_autoload"); undo_redo->add_undo_method(this, "update_autoload"); @@ -212,8 +206,8 @@ void EditorAutoloadSettings::_autoload_edited() { bool checked = ti->is_checked(2); String base = "autoload/" + ti->get_text(0); - int order = Globals::get_singleton()->get_order(base); - String path = Globals::get_singleton()->get(base); + int order = GlobalConfig::get_singleton()->get_order(base); + String path = GlobalConfig::get_singleton()->get(base); if (path.begins_with("*")) path = path.substr(1, path.length()); @@ -223,11 +217,11 @@ void EditorAutoloadSettings::_autoload_edited() { undo_redo->create_action(TTR("Toggle AutoLoad Globals")); - undo_redo->add_do_property(Globals::get_singleton(), base, path); - undo_redo->add_undo_property(Globals::get_singleton(), base, Globals::get_singleton()->get(base)); + undo_redo->add_do_property(GlobalConfig::get_singleton(), base, path); + undo_redo->add_undo_property(GlobalConfig::get_singleton(), base, GlobalConfig::get_singleton()->get(base)); - undo_redo->add_do_method(Globals::get_singleton(),"set_order", base, order); - undo_redo->add_undo_method(Globals::get_singleton(),"set_order", base, order); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"set_order", base, order); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set_order", base, order); undo_redo->add_do_method(this, "update_autoload"); undo_redo->add_undo_method(this, "update_autoload"); @@ -267,16 +261,16 @@ void EditorAutoloadSettings::_autoload_button_pressed(Object *p_item, int p_colu String swap_name = "autoload/" + swap->get_text(0); - int order = Globals::get_singleton()->get_order(name); - int swap_order = Globals::get_singleton()->get_order(swap_name); + int order = GlobalConfig::get_singleton()->get_order(name); + int swap_order = GlobalConfig::get_singleton()->get_order(swap_name); undo_redo->create_action(TTR("Move Autoload")); - undo_redo->add_do_method(Globals::get_singleton(), "set_order", name, swap_order); - undo_redo->add_undo_method(Globals::get_singleton(), "set_order", name, order); + undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", name, swap_order); + undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", name, order); - undo_redo->add_do_method(Globals::get_singleton(), "set_order", swap_name, order); - undo_redo->add_undo_method(Globals::get_singleton(), "set_order", swap_name, swap_order); + undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", swap_name, order); + undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", swap_name, swap_order); undo_redo->add_do_method(this, "update_autoload"); undo_redo->add_undo_method(this, "update_autoload"); @@ -288,15 +282,15 @@ void EditorAutoloadSettings::_autoload_button_pressed(Object *p_item, int p_colu } break; case BUTTON_DELETE: { - int order = Globals::get_singleton()->get_order(name); + int order = GlobalConfig::get_singleton()->get_order(name); undo_redo->create_action(TTR("Remove Autoload")); - undo_redo->add_do_property(Globals::get_singleton(), name, Variant()); + undo_redo->add_do_property(GlobalConfig::get_singleton(), name, Variant()); - undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name)); - undo_redo->add_undo_method(Globals::get_singleton(), "set_persisting", name, true); - undo_redo->add_undo_method(Globals::get_singleton(), "set_order", order); + undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name)); + undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_persisting", name, true); + undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", order); undo_redo->add_do_method(this, "update_autoload"); undo_redo->add_undo_method(this, "update_autoload"); @@ -311,7 +305,7 @@ void EditorAutoloadSettings::_autoload_button_pressed(Object *p_item, int p_colu void EditorAutoloadSettings::_autoload_file_callback(const String& p_path) { - autoload_add_name->set_text(p_path.get_file().basename()); + autoload_add_name->set_text(p_path.get_file().get_basename()); } void EditorAutoloadSettings::update_autoload() { @@ -327,7 +321,7 @@ void EditorAutoloadSettings::update_autoload() { TreeItem *root = tree->create_item(); List<PropertyInfo> props; - Globals::get_singleton()->get_property_list(&props); + GlobalConfig::get_singleton()->get_property_list(&props); for (List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) { @@ -337,14 +331,14 @@ void EditorAutoloadSettings::update_autoload() { continue; String name = pi.name.get_slice("/", 1); - String path = Globals::get_singleton()->get(pi.name); + String path = GlobalConfig::get_singleton()->get(pi.name); if (name.empty()) continue; AutoLoadInfo info; info.name = pi.name; - info.order = Globals::get_singleton()->get_order(pi.name); + info.order = GlobalConfig::get_singleton()->get_order(pi.name); autoload_cache.push_back(info); @@ -381,7 +375,7 @@ Variant EditorAutoloadSettings::get_drag_data_fw(const Point2& p_point, Control if (autoload_cache.size() <= 1) return false; - StringArray autoloads; + PoolStringArray autoloads; TreeItem *next = tree->get_next_selected(NULL); @@ -399,7 +393,7 @@ Variant EditorAutoloadSettings::get_drag_data_fw(const Point2& p_point, Control for (int i = 0; i < max_size; i++) { Label *label = memnew( Label(autoloads[i]) ); - label->set_self_opacity(Math::lerp(1, 0, float(i)/PREVIEW_LIST_MAX_SIZE)); + label->set_self_modulate(Color(1,1,1,Math::lerp(1, 0, float(i)/PREVIEW_LIST_MAX_SIZE))); preview->add_child(label); } @@ -464,7 +458,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant& move_to_back = true; } - int order = Globals::get_singleton()->get_order("autoload/" + name); + int order = GlobalConfig::get_singleton()->get_order("autoload/" + name); AutoLoadInfo aux; List<AutoLoadInfo>::Element *E = NULL; @@ -475,13 +469,13 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant& } Dictionary drop_data = p_data; - StringArray autoloads = drop_data["autoloads"]; + PoolStringArray autoloads = drop_data["autoloads"]; Vector<int> orders; orders.resize(autoload_cache.size()); for (int i = 0; i < autoloads.size(); i++) { - aux.order = Globals::get_singleton()->get_order("autoload/" + autoloads[i]); + aux.order = GlobalConfig::get_singleton()->get_order("autoload/" + autoloads[i]); List<AutoLoadInfo>::Element *I = autoload_cache.find(aux); @@ -511,8 +505,8 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant& i = 0; for (List<AutoLoadInfo>::Element *E = autoload_cache.front(); E; E = E->next()) { - undo_redo->add_do_method(Globals::get_singleton(), "set_order", E->get().name, orders[i++]); - undo_redo->add_undo_method(Globals::get_singleton(), "set_order", E->get().name, E->get().order); + undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", E->get().name, orders[i++]); + undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", E->get().name, E->get().order); } orders.clear(); @@ -528,17 +522,17 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant& void EditorAutoloadSettings::_bind_methods() { - ObjectTypeDB::bind_method("_autoload_add", &EditorAutoloadSettings::_autoload_add); - ObjectTypeDB::bind_method("_autoload_selected", &EditorAutoloadSettings::_autoload_selected); - ObjectTypeDB::bind_method("_autoload_edited", &EditorAutoloadSettings::_autoload_edited); - ObjectTypeDB::bind_method("_autoload_button_pressed", &EditorAutoloadSettings::_autoload_button_pressed); - ObjectTypeDB::bind_method("_autoload_file_callback", &EditorAutoloadSettings::_autoload_file_callback); + ClassDB::bind_method("_autoload_add", &EditorAutoloadSettings::_autoload_add); + ClassDB::bind_method("_autoload_selected", &EditorAutoloadSettings::_autoload_selected); + ClassDB::bind_method("_autoload_edited", &EditorAutoloadSettings::_autoload_edited); + ClassDB::bind_method("_autoload_button_pressed", &EditorAutoloadSettings::_autoload_button_pressed); + ClassDB::bind_method("_autoload_file_callback", &EditorAutoloadSettings::_autoload_file_callback); - ObjectTypeDB::bind_method("get_drag_data_fw", &EditorAutoloadSettings::get_drag_data_fw); - ObjectTypeDB::bind_method("can_drop_data_fw", &EditorAutoloadSettings::can_drop_data_fw); - ObjectTypeDB::bind_method("drop_data_fw", &EditorAutoloadSettings::drop_data_fw); + ClassDB::bind_method("get_drag_data_fw", &EditorAutoloadSettings::get_drag_data_fw); + ClassDB::bind_method("can_drop_data_fw", &EditorAutoloadSettings::can_drop_data_fw); + ClassDB::bind_method("drop_data_fw", &EditorAutoloadSettings::drop_data_fw); - ObjectTypeDB::bind_method("update_autoload", &EditorAutoloadSettings::update_autoload); + ClassDB::bind_method("update_autoload", &EditorAutoloadSettings::update_autoload); ADD_SIGNAL(MethodInfo("autoload_changed")); } diff --git a/tools/editor/editor_autoload_settings.h b/tools/editor/editor_autoload_settings.h index b61c44b9c2..2afe239000 100644 --- a/tools/editor/editor_autoload_settings.h +++ b/tools/editor/editor_autoload_settings.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -36,7 +36,7 @@ class EditorAutoloadSettings : public VBoxContainer { - OBJ_TYPE( EditorAutoloadSettings, VBoxContainer ); + GDCLASS( EditorAutoloadSettings, VBoxContainer ); enum { BUTTON_MOVE_UP, diff --git a/tools/editor/editor_data.cpp b/tools/editor/editor_data.cpp index 8fc18b5b39..44de1836b6 100644 --- a/tools/editor/editor_data.cpp +++ b/tools/editor/editor_data.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_data.h" + #include "globals.h" #include "editor_settings.h" #include "os/dir_access.h" @@ -524,8 +525,10 @@ void EditorData::remove_scene(int p_idx){ bool EditorData::_find_updated_instances(Node* p_root,Node *p_node,Set<String> &checked_paths) { -// if (p_root!=p_node && p_node->get_owner()!=p_root && !p_root->is_editable_instance(p_node->get_owner())) -// return false; + /* + if (p_root!=p_node && p_node->get_owner()!=p_root && !p_root->is_editable_instance(p_node->get_owner())) + return false; + */ Ref<SceneState> ss; @@ -584,7 +587,7 @@ bool EditorData::check_and_update_scene(int p_idx) { Error err = pscene->pack(edited_scene[p_idx].root); ERR_FAIL_COND_V(err!=OK,false); ep.step(TTR("Updating scene.."),1); - Node *new_scene = pscene->instance(true); + Node *new_scene = pscene->instance(PackedScene::GEN_EDIT_STATE_MAIN); ERR_FAIL_COND_V(!new_scene,false); //transfer selection @@ -667,7 +670,7 @@ String EditorData::get_scene_type(int p_idx) const { ERR_FAIL_INDEX_V(p_idx,edited_scene.size(),String()); if (!edited_scene[p_idx].root) return ""; - return edited_scene[p_idx].root->get_type(); + return edited_scene[p_idx].root->get_class(); } void EditorData::move_edited_scene_to_index(int p_idx) { @@ -814,7 +817,7 @@ EditorData::EditorData() { current_edited_scene=-1; -// load_imported_scenes_from_globals(); + //load_imported_scenes_from_globals(); } /////////// @@ -851,7 +854,7 @@ void EditorSelection::add_node(Node *p_node) { } selection[p_node]=meta; - p_node->connect("exit_tree",this,"_node_removed",varray(p_node),CONNECT_ONESHOT); + p_node->connect("tree_exited",this,"_node_removed",varray(p_node),CONNECT_ONESHOT); //emit_signal("selection_changed"); } @@ -869,7 +872,7 @@ void EditorSelection::remove_node(Node *p_node) { if (meta) memdelete(meta); selection.erase(p_node); - p_node->disconnect("exit_tree",this,"_node_removed"); + p_node->disconnect("tree_exited",this,"_node_removed"); //emit_signal("selection_changed"); } bool EditorSelection::is_selected(Node * p_node) const { @@ -903,12 +906,12 @@ Array EditorSelection::_get_selected_nodes() { void EditorSelection::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_node_removed"),&EditorSelection::_node_removed); - ObjectTypeDB::bind_method(_MD("clear"),&EditorSelection::clear); - ObjectTypeDB::bind_method(_MD("add_node","node:Node"),&EditorSelection::add_node); - ObjectTypeDB::bind_method(_MD("remove_node","node:Node"),&EditorSelection::remove_node); - ObjectTypeDB::bind_method(_MD("get_selected_nodes"),&EditorSelection::_get_selected_nodes); - ObjectTypeDB::bind_method(_MD("get_transformable_selected_nodes"),&EditorSelection::_get_transformable_selected_nodes); + ClassDB::bind_method(_MD("_node_removed"),&EditorSelection::_node_removed); + ClassDB::bind_method(_MD("clear"),&EditorSelection::clear); + ClassDB::bind_method(_MD("add_node","node:Node"),&EditorSelection::add_node); + ClassDB::bind_method(_MD("remove_node","node:Node"),&EditorSelection::remove_node); + ClassDB::bind_method(_MD("get_selected_nodes"),&EditorSelection::_get_selected_nodes); + ClassDB::bind_method(_MD("get_transformable_selected_nodes"),&EditorSelection::_get_transformable_selected_nodes); ADD_SIGNAL( MethodInfo("selection_changed") ); } diff --git a/tools/editor/editor_data.h b/tools/editor/editor_data.h index 59f9d4e4f3..f0bc5983a2 100644 --- a/tools/editor/editor_data.h +++ b/tools/editor/editor_data.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -218,7 +218,7 @@ public: class EditorSelection : public Object { - OBJ_TYPE(EditorSelection,Object); + GDCLASS(EditorSelection,Object); public: Map<Node*,Object*> selection; diff --git a/tools/editor/editor_dir_dialog.cpp b/tools/editor/editor_dir_dialog.cpp index cf0732501e..bb9ddc2aef 100644 --- a/tools/editor/editor_dir_dialog.cpp +++ b/tools/editor/editor_dir_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_dir_dialog.h" + #include "os/os.h" #include "os/keyboard.h" #include "tools/editor/editor_settings.h" @@ -46,7 +47,7 @@ void EditorDirDialog::_update_dir(TreeItem* p_item) { List<String> dirs; bool ishidden; - bool show_hidden = EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"); + bool show_hidden = EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files"); while(p!="") { @@ -78,7 +79,7 @@ void EditorDirDialog::_update_dir(TreeItem* p_item) { void EditorDirDialog::reload() { - if (!is_visible()) { + if (!is_visible_in_tree()) { must_reload=true; return; } @@ -111,7 +112,7 @@ void EditorDirDialog::_notification(int p_what) { } if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { - if (must_reload && is_visible()) { + if (must_reload && is_visible_in_tree()) { reload(); } } @@ -145,7 +146,7 @@ void EditorDirDialog::set_current_path(const String& p_path) { if (p.begins_with("res://")) p = p.replace_first("res://",""); - Vector<String> dirs = p.split("/"); + Vector<String> dirs = p.split("/",false); TreeItem *r=tree->get_root(); for(int i=0;i<dirs.size();i++) { @@ -224,10 +225,10 @@ void EditorDirDialog::_make_dir_confirm() { void EditorDirDialog::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_item_collapsed"),&EditorDirDialog::_item_collapsed); - ObjectTypeDB::bind_method(_MD("_make_dir"),&EditorDirDialog::_make_dir); - ObjectTypeDB::bind_method(_MD("_make_dir_confirm"),&EditorDirDialog::_make_dir_confirm); - ObjectTypeDB::bind_method(_MD("reload"),&EditorDirDialog::reload); + ClassDB::bind_method(_MD("_item_collapsed"),&EditorDirDialog::_item_collapsed); + ClassDB::bind_method(_MD("_make_dir"),&EditorDirDialog::_make_dir); + ClassDB::bind_method(_MD("_make_dir_confirm"),&EditorDirDialog::_make_dir_confirm); + ClassDB::bind_method(_MD("reload"),&EditorDirDialog::reload); ADD_SIGNAL(MethodInfo("dir_selected",PropertyInfo(Variant::STRING,"dir"))); } @@ -243,7 +244,7 @@ EditorDirDialog::EditorDirDialog() { tree = memnew( Tree ); add_child(tree); - set_child_rect(tree); + tree->connect("item_activated",this,"_ok"); makedir = add_button(TTR("Create Folder"),OS::get_singleton()->get_swap_ok_cancel()?true:false,"makedir"); @@ -255,7 +256,7 @@ EditorDirDialog::EditorDirDialog() { VBoxContainer *makevb= memnew( VBoxContainer ); makedialog->add_child(makevb); - makedialog->set_child_rect(makevb); + //makedialog->set_child_rect(makevb); makedirname = memnew( LineEdit ); makevb->add_margin_child(TTR("Name:"),makedirname); diff --git a/tools/editor/editor_dir_dialog.h b/tools/editor/editor_dir_dialog.h index 69f9850c30..0577ff0442 100644 --- a/tools/editor/editor_dir_dialog.h +++ b/tools/editor/editor_dir_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -34,7 +34,7 @@ #include "scene/gui/tree.h" class EditorDirDialog : public ConfirmationDialog { - OBJ_TYPE(EditorDirDialog,ConfirmationDialog); + GDCLASS(EditorDirDialog,ConfirmationDialog); ConfirmationDialog *makedialog; diff --git a/tools/editor/editor_file_dialog.cpp b/tools/editor/editor_file_dialog.cpp index 90289a275e..e23e2419d8 100644 --- a/tools/editor/editor_file_dialog.cpp +++ b/tools/editor/editor_file_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_file_dialog.h" + #include "scene/gui/label.h" #include "scene/gui/center_container.h" #include "print_string.h" @@ -36,6 +37,7 @@ #include "scene/gui/margin_container.h" #include "os/file_access.h" #include "editor_scale.h" + EditorFileDialog::GetIconFunc EditorFileDialog::get_icon_func=NULL; EditorFileDialog::GetIconFunc EditorFileDialog::get_large_icon_func=NULL; @@ -87,10 +89,10 @@ void EditorFileDialog::_notification(int p_what) { } else if (p_what==EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { - bool show_hidden=EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"); + bool show_hidden=EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files"); if (show_hidden_files!=show_hidden) set_show_hidden_files(show_hidden); - set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("file_dialog/display_mode").operator int()); + set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int()); } } @@ -121,7 +123,7 @@ void EditorFileDialog::_unhandled_input(const InputEvent& p_event) { if (ED_IS_SHORTCUT("file_dialog/toggle_hidden_files", p_event)) { bool show=!show_hidden_files; set_show_hidden_files(show); - EditorSettings::get_singleton()->set("file_dialog/show_hidden_files",show); + EditorSettings::get_singleton()->set("filesystem/file_dialog/show_hidden_files",show); handled=true; } if (ED_IS_SHORTCUT("file_dialog/toggle_favorite", p_event)) { @@ -218,10 +220,10 @@ void EditorFileDialog::_post_popup() { else item_list->grab_focus(); - if (is_visible() && get_current_file()!="") + if (is_visible_in_tree() && get_current_file()!="") _request_single_thumbnail(get_current_dir().plus_file(get_current_file())); - if (is_visible()) { + if (is_visible_in_tree()) { Ref<Texture> folder = get_icon("folder","FileDialog"); recent->clear(); @@ -313,7 +315,7 @@ void EditorFileDialog::_action_pressed() { String fbase=dir_access->get_current_dir(); - DVector<String> files; + PoolVector<String> files; for(int i=0;i<item_list->get_item_count();i++) { if (item_list->is_selected(i)) files.push_back( fbase.plus_file(item_list->get_item_text(i) )); @@ -490,7 +492,7 @@ void EditorFileDialog::_item_dc_selected(int p_item) { void EditorFileDialog::update_file_list() { - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; Ref<Texture> folder_thumbnail; Ref<Texture> file_thumbnail; @@ -713,8 +715,10 @@ void EditorFileDialog::update_file_list() { } // ?? - //if (tree->get_root() && tree->get_root()->get_children()) - // tree->get_root()->get_children()->select(0); + /* + if (tree->get_root() && tree->get_root()->get_children()) + tree->get_root()->get_children()->select(0); + */ files.clear(); @@ -806,7 +810,7 @@ void EditorFileDialog::set_current_file(const String& p_file) { file->grab_focus(); } - if (is_visible()) + if (is_visible_in_tree()) _request_single_thumbnail(get_current_dir().plus_file(get_current_file())); @@ -882,7 +886,7 @@ void EditorFileDialog::set_access(Access p_access) { void EditorFileDialog::invalidate() { - if (is_visible()) { + if (is_visible_in_tree()) { update_file_list(); invalidated=false; } else { @@ -1148,7 +1152,7 @@ void EditorFileDialog::set_display_mode(DisplayMode p_mode) { mode_list->set_pressed(true); } display_mode=p_mode; - invalidate();; + invalidate(); } EditorFileDialog::DisplayMode EditorFileDialog::get_display_mode() const{ @@ -1160,58 +1164,58 @@ EditorFileDialog::DisplayMode EditorFileDialog::get_display_mode() const{ void EditorFileDialog::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_unhandled_input"),&EditorFileDialog::_unhandled_input); - - ObjectTypeDB::bind_method(_MD("_item_selected"),&EditorFileDialog::_item_selected); - ObjectTypeDB::bind_method(_MD("_item_db_selected"),&EditorFileDialog::_item_dc_selected); - ObjectTypeDB::bind_method(_MD("_dir_entered"),&EditorFileDialog::_dir_entered); - ObjectTypeDB::bind_method(_MD("_file_entered"),&EditorFileDialog::_file_entered); - ObjectTypeDB::bind_method(_MD("_action_pressed"),&EditorFileDialog::_action_pressed); - ObjectTypeDB::bind_method(_MD("_cancel_pressed"),&EditorFileDialog::_cancel_pressed); - ObjectTypeDB::bind_method(_MD("_filter_selected"),&EditorFileDialog::_filter_selected); - ObjectTypeDB::bind_method(_MD("_save_confirm_pressed"),&EditorFileDialog::_save_confirm_pressed); - - ObjectTypeDB::bind_method(_MD("clear_filters"),&EditorFileDialog::clear_filters); - ObjectTypeDB::bind_method(_MD("add_filter","filter"),&EditorFileDialog::add_filter); - ObjectTypeDB::bind_method(_MD("get_current_dir"),&EditorFileDialog::get_current_dir); - ObjectTypeDB::bind_method(_MD("get_current_file"),&EditorFileDialog::get_current_file); - ObjectTypeDB::bind_method(_MD("get_current_path"),&EditorFileDialog::get_current_path); - ObjectTypeDB::bind_method(_MD("set_current_dir","dir"),&EditorFileDialog::set_current_dir); - ObjectTypeDB::bind_method(_MD("set_current_file","file"),&EditorFileDialog::set_current_file); - ObjectTypeDB::bind_method(_MD("set_current_path","path"),&EditorFileDialog::set_current_path); - ObjectTypeDB::bind_method(_MD("set_mode","mode"),&EditorFileDialog::set_mode); - ObjectTypeDB::bind_method(_MD("get_mode"),&EditorFileDialog::get_mode); - ObjectTypeDB::bind_method(_MD("get_vbox:VBoxContainer"),&EditorFileDialog::get_vbox); - ObjectTypeDB::bind_method(_MD("set_access","access"),&EditorFileDialog::set_access); - ObjectTypeDB::bind_method(_MD("get_access"),&EditorFileDialog::get_access); - ObjectTypeDB::bind_method(_MD("set_show_hidden_files","show"),&EditorFileDialog::set_show_hidden_files); - ObjectTypeDB::bind_method(_MD("is_showing_hidden_files"),&EditorFileDialog::is_showing_hidden_files); - ObjectTypeDB::bind_method(_MD("_select_drive"),&EditorFileDialog::_select_drive); - ObjectTypeDB::bind_method(_MD("_make_dir"),&EditorFileDialog::_make_dir); - ObjectTypeDB::bind_method(_MD("_make_dir_confirm"),&EditorFileDialog::_make_dir_confirm); - ObjectTypeDB::bind_method(_MD("_update_file_list"),&EditorFileDialog::update_file_list); - ObjectTypeDB::bind_method(_MD("_update_dir"),&EditorFileDialog::update_dir); - ObjectTypeDB::bind_method(_MD("_thumbnail_done"),&EditorFileDialog::_thumbnail_done); - ObjectTypeDB::bind_method(_MD("set_display_mode","mode"),&EditorFileDialog::set_display_mode); - ObjectTypeDB::bind_method(_MD("get_display_mode"),&EditorFileDialog::get_display_mode); - ObjectTypeDB::bind_method(_MD("_thumbnail_result"),&EditorFileDialog::_thumbnail_result); - ObjectTypeDB::bind_method(_MD("set_disable_overwrite_warning","disable"),&EditorFileDialog::set_disable_overwrite_warning); - ObjectTypeDB::bind_method(_MD("is_overwrite_warning_disabled"),&EditorFileDialog::is_overwrite_warning_disabled); - - ObjectTypeDB::bind_method(_MD("_recent_selected"),&EditorFileDialog::_recent_selected); - ObjectTypeDB::bind_method(_MD("_go_back"),&EditorFileDialog::_go_back); - ObjectTypeDB::bind_method(_MD("_go_forward"),&EditorFileDialog::_go_forward); - ObjectTypeDB::bind_method(_MD("_go_up"),&EditorFileDialog::_go_up); - - ObjectTypeDB::bind_method(_MD("_favorite_toggled"),&EditorFileDialog::_favorite_toggled); - ObjectTypeDB::bind_method(_MD("_favorite_selected"),&EditorFileDialog::_favorite_selected); - ObjectTypeDB::bind_method(_MD("_favorite_move_up"),&EditorFileDialog::_favorite_move_up); - ObjectTypeDB::bind_method(_MD("_favorite_move_down"),&EditorFileDialog::_favorite_move_down); - - ObjectTypeDB::bind_method(_MD("invalidate"),&EditorFileDialog::invalidate); + ClassDB::bind_method(_MD("_unhandled_input"),&EditorFileDialog::_unhandled_input); + + ClassDB::bind_method(_MD("_item_selected"),&EditorFileDialog::_item_selected); + ClassDB::bind_method(_MD("_item_db_selected"),&EditorFileDialog::_item_dc_selected); + ClassDB::bind_method(_MD("_dir_entered"),&EditorFileDialog::_dir_entered); + ClassDB::bind_method(_MD("_file_entered"),&EditorFileDialog::_file_entered); + ClassDB::bind_method(_MD("_action_pressed"),&EditorFileDialog::_action_pressed); + ClassDB::bind_method(_MD("_cancel_pressed"),&EditorFileDialog::_cancel_pressed); + ClassDB::bind_method(_MD("_filter_selected"),&EditorFileDialog::_filter_selected); + ClassDB::bind_method(_MD("_save_confirm_pressed"),&EditorFileDialog::_save_confirm_pressed); + + ClassDB::bind_method(_MD("clear_filters"),&EditorFileDialog::clear_filters); + ClassDB::bind_method(_MD("add_filter","filter"),&EditorFileDialog::add_filter); + ClassDB::bind_method(_MD("get_current_dir"),&EditorFileDialog::get_current_dir); + ClassDB::bind_method(_MD("get_current_file"),&EditorFileDialog::get_current_file); + ClassDB::bind_method(_MD("get_current_path"),&EditorFileDialog::get_current_path); + ClassDB::bind_method(_MD("set_current_dir","dir"),&EditorFileDialog::set_current_dir); + ClassDB::bind_method(_MD("set_current_file","file"),&EditorFileDialog::set_current_file); + ClassDB::bind_method(_MD("set_current_path","path"),&EditorFileDialog::set_current_path); + ClassDB::bind_method(_MD("set_mode","mode"),&EditorFileDialog::set_mode); + ClassDB::bind_method(_MD("get_mode"),&EditorFileDialog::get_mode); + ClassDB::bind_method(_MD("get_vbox:VBoxContainer"),&EditorFileDialog::get_vbox); + ClassDB::bind_method(_MD("set_access","access"),&EditorFileDialog::set_access); + ClassDB::bind_method(_MD("get_access"),&EditorFileDialog::get_access); + ClassDB::bind_method(_MD("set_show_hidden_files","show"),&EditorFileDialog::set_show_hidden_files); + ClassDB::bind_method(_MD("is_showing_hidden_files"),&EditorFileDialog::is_showing_hidden_files); + ClassDB::bind_method(_MD("_select_drive"),&EditorFileDialog::_select_drive); + ClassDB::bind_method(_MD("_make_dir"),&EditorFileDialog::_make_dir); + ClassDB::bind_method(_MD("_make_dir_confirm"),&EditorFileDialog::_make_dir_confirm); + ClassDB::bind_method(_MD("_update_file_list"),&EditorFileDialog::update_file_list); + ClassDB::bind_method(_MD("_update_dir"),&EditorFileDialog::update_dir); + ClassDB::bind_method(_MD("_thumbnail_done"),&EditorFileDialog::_thumbnail_done); + ClassDB::bind_method(_MD("set_display_mode","mode"),&EditorFileDialog::set_display_mode); + ClassDB::bind_method(_MD("get_display_mode"),&EditorFileDialog::get_display_mode); + ClassDB::bind_method(_MD("_thumbnail_result"),&EditorFileDialog::_thumbnail_result); + ClassDB::bind_method(_MD("set_disable_overwrite_warning","disable"),&EditorFileDialog::set_disable_overwrite_warning); + ClassDB::bind_method(_MD("is_overwrite_warning_disabled"),&EditorFileDialog::is_overwrite_warning_disabled); + + ClassDB::bind_method(_MD("_recent_selected"),&EditorFileDialog::_recent_selected); + ClassDB::bind_method(_MD("_go_back"),&EditorFileDialog::_go_back); + ClassDB::bind_method(_MD("_go_forward"),&EditorFileDialog::_go_forward); + ClassDB::bind_method(_MD("_go_up"),&EditorFileDialog::_go_up); + + ClassDB::bind_method(_MD("_favorite_toggled"),&EditorFileDialog::_favorite_toggled); + ClassDB::bind_method(_MD("_favorite_selected"),&EditorFileDialog::_favorite_selected); + ClassDB::bind_method(_MD("_favorite_move_up"),&EditorFileDialog::_favorite_move_up); + ClassDB::bind_method(_MD("_favorite_move_down"),&EditorFileDialog::_favorite_move_down); + + ClassDB::bind_method(_MD("invalidate"),&EditorFileDialog::invalidate); ADD_SIGNAL(MethodInfo("file_selected",PropertyInfo( Variant::STRING,"path"))); - ADD_SIGNAL(MethodInfo("files_selected",PropertyInfo( Variant::STRING_ARRAY,"paths"))); + ADD_SIGNAL(MethodInfo("files_selected",PropertyInfo( Variant::POOL_STRING_ARRAY,"paths"))); ADD_SIGNAL(MethodInfo("dir_selected",PropertyInfo( Variant::STRING,"dir"))); BIND_CONSTANT( MODE_OPEN_FILE ); @@ -1289,7 +1293,6 @@ EditorFileDialog::EditorFileDialog() { disable_overwrite_warning=false; VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); mode=MODE_SAVE_FILE; set_title(TTR("Save a File")); @@ -1406,7 +1409,7 @@ EditorFileDialog::EditorFileDialog() { filter_hb->add_child(preview_vb); CenterContainer *prev_cc = memnew( CenterContainer ); preview_vb->add_margin_child(TTR("Preview:"),prev_cc); - preview = memnew( TextureFrame ); + preview = memnew( TextureRect ); prev_cc->add_child(preview); preview_vb->hide(); @@ -1446,7 +1449,7 @@ EditorFileDialog::EditorFileDialog() { makedialog->set_title(TTR("Create Folder")); VBoxContainer *makevb= memnew( VBoxContainer ); makedialog->add_child(makevb); - makedialog->set_child_rect(makevb); + makedirname = memnew( LineEdit ); makevb->add_margin_child(TTR("Name:"),makedirname); add_child(makedialog); @@ -1490,11 +1493,11 @@ EditorFileDialog::~EditorFileDialog() { void EditorLineEditFileChooser::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_browse"),&EditorLineEditFileChooser::_browse); - ObjectTypeDB::bind_method(_MD("_chosen"),&EditorLineEditFileChooser::_chosen); - ObjectTypeDB::bind_method(_MD("get_button:Button"),&EditorLineEditFileChooser::get_button); - ObjectTypeDB::bind_method(_MD("get_line_edit:LineEdit"),&EditorLineEditFileChooser::get_line_edit); - ObjectTypeDB::bind_method(_MD("get_file_dialog:EditorFileDialog"),&EditorLineEditFileChooser::get_file_dialog); + ClassDB::bind_method(_MD("_browse"),&EditorLineEditFileChooser::_browse); + ClassDB::bind_method(_MD("_chosen"),&EditorLineEditFileChooser::_chosen); + ClassDB::bind_method(_MD("get_button:Button"),&EditorLineEditFileChooser::get_button); + ClassDB::bind_method(_MD("get_line_edit:LineEdit"),&EditorLineEditFileChooser::get_line_edit); + ClassDB::bind_method(_MD("get_file_dialog:EditorFileDialog"),&EditorLineEditFileChooser::get_file_dialog); } diff --git a/tools/editor/editor_file_dialog.h b/tools/editor/editor_file_dialog.h index 14683856c0..193cbc513c 100644 --- a/tools/editor/editor_file_dialog.h +++ b/tools/editor/editor_file_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,14 +35,14 @@ #include "scene/gui/option_button.h" #include "os/dir_access.h" #include "scene/gui/box_container.h" -#include "scene/gui/texture_frame.h" +#include "scene/gui/texture_rect.h" #include "scene/gui/tool_button.h" /** @author Juan Linietsky <reduzio@gmail.com> */ class EditorFileDialog : public ConfirmationDialog { - OBJ_TYPE( EditorFileDialog, ConfirmationDialog ); + GDCLASS( EditorFileDialog, ConfirmationDialog ); public: @@ -93,7 +93,7 @@ private: OptionButton *drives; ItemList *item_list; - TextureFrame *preview; + TextureRect *preview; VBoxContainer *preview_vb; HBoxContainer *list_hb; LineEdit *file; @@ -227,7 +227,7 @@ public: class EditorLineEditFileChooser : public HBoxContainer { - OBJ_TYPE( EditorLineEditFileChooser, HBoxContainer ); + GDCLASS( EditorLineEditFileChooser, HBoxContainer ); Button *button; LineEdit *line_edit; EditorFileDialog *dialog; diff --git a/tools/editor/editor_file_system.cpp b/tools/editor/editor_file_system.cpp index be1af16576..39869beef4 100644 --- a/tools/editor/editor_file_system.cpp +++ b/tools/editor/editor_file_system.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_file_system.h" + #include "globals.h" #include "io/resource_loader.h" #include "os/os.h" @@ -203,18 +204,18 @@ EditorFileSystemDirectory *EditorFileSystemDirectory::get_parent() { void EditorFileSystemDirectory::_bind_methods() { - ObjectTypeDB::bind_method(_MD("get_subdir_count"),&EditorFileSystemDirectory::get_subdir_count); - ObjectTypeDB::bind_method(_MD("get_subdir","idx"),&EditorFileSystemDirectory::get_subdir); - ObjectTypeDB::bind_method(_MD("get_file_count"),&EditorFileSystemDirectory::get_file_count); - ObjectTypeDB::bind_method(_MD("get_file","idx"),&EditorFileSystemDirectory::get_file); - ObjectTypeDB::bind_method(_MD("get_file_path","idx"),&EditorFileSystemDirectory::get_file_path); - ObjectTypeDB::bind_method(_MD("get_file_type","idx"),&EditorFileSystemDirectory::get_file_type); - ObjectTypeDB::bind_method(_MD("is_missing_sources","idx"),&EditorFileSystemDirectory::is_missing_sources); - ObjectTypeDB::bind_method(_MD("get_name"),&EditorFileSystemDirectory::get_name); - ObjectTypeDB::bind_method(_MD("get_path"),&EditorFileSystemDirectory::get_path); - ObjectTypeDB::bind_method(_MD("get_parent:EditorFileSystemDirectory"),&EditorFileSystemDirectory::get_parent); - ObjectTypeDB::bind_method(_MD("find_file_index","name"),&EditorFileSystemDirectory::find_file_index); - ObjectTypeDB::bind_method(_MD("find_dir_index","name"),&EditorFileSystemDirectory::find_dir_index); + ClassDB::bind_method(_MD("get_subdir_count"),&EditorFileSystemDirectory::get_subdir_count); + ClassDB::bind_method(_MD("get_subdir","idx"),&EditorFileSystemDirectory::get_subdir); + ClassDB::bind_method(_MD("get_file_count"),&EditorFileSystemDirectory::get_file_count); + ClassDB::bind_method(_MD("get_file","idx"),&EditorFileSystemDirectory::get_file); + ClassDB::bind_method(_MD("get_file_path","idx"),&EditorFileSystemDirectory::get_file_path); + ClassDB::bind_method(_MD("get_file_type","idx"),&EditorFileSystemDirectory::get_file_type); + ClassDB::bind_method(_MD("is_missing_sources","idx"),&EditorFileSystemDirectory::is_missing_sources); + ClassDB::bind_method(_MD("get_name"),&EditorFileSystemDirectory::get_name); + ClassDB::bind_method(_MD("get_path"),&EditorFileSystemDirectory::get_path); + ClassDB::bind_method(_MD("get_parent:EditorFileSystemDirectory"),&EditorFileSystemDirectory::get_parent); + ClassDB::bind_method(_MD("find_file_index","name"),&EditorFileSystemDirectory::find_file_index); + ClassDB::bind_method(_MD("find_dir_index","name"),&EditorFileSystemDirectory::find_dir_index); } @@ -286,7 +287,7 @@ void EditorFileSystem::_scan_filesystem() { sources_changed.clear(); file_cache.clear(); - String project=Globals::get_singleton()->get_resource_path(); + String project=GlobalConfig::get_singleton()->get_resource_path(); String fscache = EditorSettings::get_singleton()->get_project_settings_path().plus_file("filesystem_cache"); FileAccess *f =FileAccess::open(fscache,FileAccess::READ); @@ -378,7 +379,7 @@ void EditorFileSystem::_scan_filesystem() { //save back the findings -// String fscache = EditorSettings::get_singleton()->get_project_settings_path().plus_file("file_cache"); + //String fscache = EditorSettings::get_singleton()->get_project_settings_path().plus_file("file_cache"); f=FileAccess::open(fscache,FileAccess::WRITE); _save_filesystem_cache(new_filesystem,f); @@ -488,7 +489,7 @@ bool EditorFileSystem::_update_scan_actions() { void EditorFileSystem::scan() { - if (bool(Globals::get_singleton()->get("debug/disable_scan"))) + if (false /*&& bool(Globals::get_singleton()->get("debug/disable_scan"))*/) return; if (scanning || scanning_sources|| thread) @@ -502,7 +503,7 @@ void EditorFileSystem::scan() { _scan_filesystem(); if (filesystem) memdelete(filesystem); -// file_type_cache.clear(); + //file_type_cache.clear(); filesystem=new_filesystem; new_filesystem=NULL; _update_scan_actions(); @@ -670,7 +671,7 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir,DirAccess for (List<String>::Element*E=files.front();E;E=E->next(),idx++) { - String ext = E->get().extension().to_lower(); + String ext = E->get().get_extension().to_lower(); if (!valid_extensions.has(ext)) continue; //invalid @@ -789,7 +790,7 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir,const S } else { - String ext = f.extension().to_lower(); + String ext = f.get_extension().to_lower(); if (!valid_extensions.has(ext)) continue; //invalid @@ -1088,7 +1089,7 @@ bool EditorFileSystem::_find_file(const String& p_file,EditorFileSystemDirectory return false; - String f = Globals::get_singleton()->localize_path(p_file); + String f = GlobalConfig::get_singleton()->localize_path(p_file); if (!f.begins_with("res://")) return false; @@ -1198,13 +1199,13 @@ EditorFileSystemDirectory* EditorFileSystem::find_file(const String& p_file,int* } -EditorFileSystemDirectory *EditorFileSystem::get_path(const String& p_path) { +EditorFileSystemDirectory *EditorFileSystem::get_filesystem_path(const String& p_path) { if (!filesystem || scanning) return NULL; - String f = Globals::get_singleton()->localize_path(p_path); + String f = GlobalConfig::get_singleton()->localize_path(p_path); if (!f.begins_with("res://")) return NULL; @@ -1346,14 +1347,14 @@ void EditorFileSystem::update_file(const String& p_file) { void EditorFileSystem::_bind_methods() { - ObjectTypeDB::bind_method(_MD("get_filesystem:EditorFileSystemDirectory"),&EditorFileSystem::get_filesystem); - ObjectTypeDB::bind_method(_MD("is_scanning"),&EditorFileSystem::is_scanning); - ObjectTypeDB::bind_method(_MD("get_scanning_progress"),&EditorFileSystem::get_scanning_progress); - ObjectTypeDB::bind_method(_MD("scan"),&EditorFileSystem::scan); - ObjectTypeDB::bind_method(_MD("scan_sources"),&EditorFileSystem::scan_sources); - ObjectTypeDB::bind_method(_MD("update_file","path"),&EditorFileSystem::update_file); - ObjectTypeDB::bind_method(_MD("get_path:EditorFileSystemDirectory","path"),&EditorFileSystem::get_path); - ObjectTypeDB::bind_method(_MD("get_file_type","path"),&EditorFileSystem::get_file_type); + ClassDB::bind_method(_MD("get_filesystem:EditorFileSystemDirectory"),&EditorFileSystem::get_filesystem); + ClassDB::bind_method(_MD("is_scanning"),&EditorFileSystem::is_scanning); + ClassDB::bind_method(_MD("get_scanning_progress"),&EditorFileSystem::get_scanning_progress); + ClassDB::bind_method(_MD("scan"),&EditorFileSystem::scan); + ClassDB::bind_method(_MD("scan_sources"),&EditorFileSystem::scan_sources); + ClassDB::bind_method(_MD("update_file","path"),&EditorFileSystem::update_file); + ClassDB::bind_method(_MD("get_filesystem_path:EditorFileSystemDirectory","path"),&EditorFileSystem::get_filesystem_path); + ClassDB::bind_method(_MD("get_file_type","path"),&EditorFileSystem::get_file_type); ADD_SIGNAL( MethodInfo("filesystem_changed") ); ADD_SIGNAL( MethodInfo("sources_changed",PropertyInfo(Variant::BOOL,"exist")) ); diff --git a/tools/editor/editor_file_system.h b/tools/editor/editor_file_system.h index fb768fb358..3a26f46aa9 100644 --- a/tools/editor/editor_file_system.h +++ b/tools/editor/editor_file_system.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -39,7 +39,7 @@ class FileAccess; struct EditorProgressBG; class EditorFileSystemDirectory : public Object { - OBJ_TYPE( EditorFileSystemDirectory,Object ); + GDCLASS( EditorFileSystemDirectory,Object ); String name; uint64_t modified_time; @@ -122,7 +122,7 @@ public: class EditorFileSystem : public Node { - OBJ_TYPE( EditorFileSystem, Node ); + GDCLASS( EditorFileSystem, Node ); _THREAD_SAFE_CLASS_ @@ -233,7 +233,7 @@ public: void get_changed_sources(List<String> *r_changed); void update_file(const String& p_file); String find_resource_from_source(const String& p_path) const; - EditorFileSystemDirectory *get_path(const String& p_path); + EditorFileSystemDirectory *get_filesystem_path(const String& p_path); String get_file_type(const String& p_file) const; EditorFileSystemDirectory* find_file(const String& p_file,int* r_index) const; diff --git a/tools/editor/editor_fonts.cpp b/tools/editor/editor_fonts.cpp index bcf41cbac8..3652a59978 100644 --- a/tools/editor/editor_fonts.cpp +++ b/tools/editor/editor_fonts.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_fonts.h" + #include "doc_font.h" #include "doc_title_font.h" #include "doc_code_font.h" @@ -122,18 +123,18 @@ void editor_register_fonts(Ref<Theme> p_theme) { dfmono->set_font_ptr(_font_source_code_pro,_font_source_code_pro_size); //dfd->set_force_autohinter(true); //just looks better..i think? - MAKE_DROID_SANS(df,int(EditorSettings::get_singleton()->get("global/font_size"))*EDSCALE); + MAKE_DROID_SANS(df,int(EditorSettings::get_singleton()->get("interface/font_size"))*EDSCALE); p_theme->set_default_theme_font(df); -// Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons")); -// Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons")); -// Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons")); + //Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons")); + //Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons")); + //Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons")); - MAKE_DROID_SANS(df_title,int(EDITOR_DEF("help/help_title_font_size",18))*EDSCALE); + MAKE_DROID_SANS(df_title,int(EDITOR_DEF("text_editor/help/help_title_font_size",18))*EDSCALE); - MAKE_DROID_SANS(df_doc,int(EDITOR_DEF("help/help_font_size",16))*EDSCALE); + MAKE_DROID_SANS(df_doc,int(EDITOR_DEF("text_editor/help/help_font_size",16))*EDSCALE); p_theme->set_font("doc","EditorFonts",df_doc); @@ -142,7 +143,7 @@ void editor_register_fonts(Ref<Theme> p_theme) { Ref<DynamicFont> df_code; df_code.instance(); - df_code->set_size(int(EditorSettings::get_singleton()->get("global/source_font_size"))*EDSCALE); + df_code->set_size(int(EditorSettings::get_singleton()->get("interface/source_font_size"))*EDSCALE); df_code->set_font_data(dfmono); MAKE_FALLBACKS(df_code); @@ -150,7 +151,7 @@ void editor_register_fonts(Ref<Theme> p_theme) { Ref<DynamicFont> df_doc_code; df_doc_code.instance(); - df_doc_code->set_size(int(EDITOR_DEF("help/help_source_font_size",14))*EDSCALE); + df_doc_code->set_size(int(EDITOR_DEF("text_editor/help/help_source_font_size",14))*EDSCALE); df_doc_code->set_font_data(dfmono); MAKE_FALLBACKS(df_doc_code); diff --git a/tools/editor/editor_fonts.h b/tools/editor/editor_fonts.h index 3b2422c3e3..0e8ce20609 100644 --- a/tools/editor/editor_fonts.h +++ b/tools/editor/editor_fonts.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/editor_help.cpp b/tools/editor/editor_help.cpp index 4f83dc2f66..03e631cbc3 100644 --- a/tools/editor/editor_help.cpp +++ b/tools/editor/editor_help.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,15 +27,13 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_help.h" + #include "editor_node.h" #include "editor_settings.h" #include "os/keyboard.h" #include "doc_data_compressed.h" #include "tools/editor/plugins/script_editor_plugin.h" - -#include "os/keyboard.h" - void EditorHelpSearch::popup() { popup_centered_ratio(0.6); if (search_box->get_text()!="") { @@ -71,7 +69,7 @@ void EditorHelpSearch::_sbox_input(const InputEvent& p_ie) { p_ie.key.scancode == KEY_PAGEUP || p_ie.key.scancode == KEY_PAGEDOWN ) ) { - search_options->call("_input_event",p_ie); + search_options->call("_gui_input",p_ie); search_box->accept_event(); } @@ -88,7 +86,7 @@ void EditorHelpSearch::_update_search() { */ List<StringName> type_list; - ObjectTypeDB::get_type_list(&type_list); + ClassDB::get_class_list(&type_list); DocData *doc=EditorHelp::get_doc_data(); String term = search_box->get_text(); @@ -287,7 +285,7 @@ void EditorHelpSearch::_notification(int p_what) { if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { - if (is_visible()) { + if (is_visible_in_tree()) { search_box->call_deferred("grab_focus"); // still not visible search_box->select_all(); @@ -299,10 +297,10 @@ void EditorHelpSearch::_notification(int p_what) { void EditorHelpSearch::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_text_changed"),&EditorHelpSearch::_text_changed); - ObjectTypeDB::bind_method(_MD("_confirmed"),&EditorHelpSearch::_confirmed); - ObjectTypeDB::bind_method(_MD("_sbox_input"),&EditorHelpSearch::_sbox_input); - ObjectTypeDB::bind_method(_MD("_update_search"),&EditorHelpSearch::_update_search); + ClassDB::bind_method(_MD("_text_changed"),&EditorHelpSearch::_text_changed); + ClassDB::bind_method(_MD("_confirmed"),&EditorHelpSearch::_confirmed); + ClassDB::bind_method(_MD("_sbox_input"),&EditorHelpSearch::_sbox_input); + ClassDB::bind_method(_MD("_update_search"),&EditorHelpSearch::_update_search); ADD_SIGNAL(MethodInfo("go_to_help")); @@ -314,7 +312,7 @@ EditorHelpSearch::EditorHelpSearch() { editor=EditorNode::get_singleton(); VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + HBoxContainer *sb_hb = memnew( HBoxContainer); search_box = memnew( LineEdit ); sb_hb->add_child(search_box); @@ -324,7 +322,7 @@ EditorHelpSearch::EditorHelpSearch() { sb_hb->add_child(sb); vbc->add_margin_child(TTR("Search:"),sb_hb); search_box->connect("text_changed",this,"_text_changed"); - search_box->connect("input_event",this,"_sbox_input"); + search_box->connect("gui_input",this,"_sbox_input"); search_options = memnew( Tree ); vbc->add_margin_child(TTR("Matches:"),search_options,true); get_ok()->set_text(TTR("Open")); @@ -334,7 +332,7 @@ EditorHelpSearch::EditorHelpSearch() { search_options->connect("item_activated",this,"_confirmed"); set_title(TTR("Search Help")); -// search_options->set_hide_root(true); + //search_options->set_hide_root(true); } @@ -349,8 +347,10 @@ void EditorHelpIndex::add_type(const String& p_type,HashMap<String,TreeItem*>& p if (p_types.has(p_type)) return; -// if (!ObjectTypeDB::is_type(p_type,base) || p_type==base) -// return; + /* + if (!ClassDB::is_type(p_type,base) || p_type==base) + return; + */ String inherits=EditorHelp::get_doc_data()->class_list[p_type].inherits; @@ -488,17 +488,17 @@ void EditorHelpIndex::_sbox_input(const InputEvent& p_ie) { p_ie.key.scancode == KEY_PAGEUP || p_ie.key.scancode == KEY_PAGEDOWN ) ) { - class_list->call("_input_event",p_ie); + class_list->call("_gui_input",p_ie); search_box->accept_event(); } } void EditorHelpIndex::_bind_methods() { - ObjectTypeDB::bind_method("_tree_item_selected",&EditorHelpIndex::_tree_item_selected); - ObjectTypeDB::bind_method("_text_changed",&EditorHelpIndex::_text_changed); - ObjectTypeDB::bind_method("_sbox_input",&EditorHelpIndex::_sbox_input); - ObjectTypeDB::bind_method("select_class",&EditorHelpIndex::select_class); + ClassDB::bind_method("_tree_item_selected",&EditorHelpIndex::_tree_item_selected); + ClassDB::bind_method("_text_changed",&EditorHelpIndex::_text_changed); + ClassDB::bind_method("_sbox_input",&EditorHelpIndex::_sbox_input); + ClassDB::bind_method("select_class",&EditorHelpIndex::select_class); ADD_SIGNAL( MethodInfo("open_class")); } @@ -508,7 +508,6 @@ EditorHelpIndex::EditorHelpIndex() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); search_box = memnew( LineEdit ); vbc->add_margin_child(TTR("Search:"), search_box); @@ -517,7 +516,7 @@ EditorHelpIndex::EditorHelpIndex() { register_text_enter(search_box); search_box->connect("text_changed", this, "_text_changed"); - search_box->connect("input_event", this, "_sbox_input"); + search_box->connect("gui_input", this, "_sbox_input"); class_list = memnew( Tree ); vbc->add_margin_child(TTR("Class List:")+" ", class_list, true); @@ -539,7 +538,7 @@ DocData *EditorHelp::doc=NULL; void EditorHelp::_unhandled_key_input(const InputEvent& p_ev) { - if (!is_visible()) + if (!is_visible_in_tree()) return; if ( p_ev.key.mod.control && p_ev.key.scancode==KEY_F) { @@ -572,15 +571,15 @@ void EditorHelp::_button_pressed(int p_idx) { if (p_idx==PAGE_CLASS_LIST) { - // edited_class->set_pressed(false); - // class_list_button->set_pressed(true); - // tabs->set_current_tab(PAGE_CLASS_LIST); + //edited_class->set_pressed(false); + //class_list_button->set_pressed(true); + //tabs->set_current_tab(PAGE_CLASS_LIST); } else if (p_idx==PAGE_CLASS_DESC) { - // edited_class->set_pressed(true); - // class_list_button->set_pressed(false); - // tabs->set_current_tab(PAGE_CLASS_DESC); + //edited_class->set_pressed(true); + //class_list_button->set_pressed(false); + //tabs->set_current_tab(PAGE_CLASS_DESC); } else if (p_idx==PAGE_CLASS_PREV) { @@ -620,7 +619,7 @@ void EditorHelp::_class_desc_select(const String& p_select) { -// print_line("LINK: "+p_select); + //print_line("LINK: "+p_select); if (p_select.begins_with("#")) { //_goto_desc(p_select.substr(1,p_select.length())); emit_signal("go_to_help","class_name:"+p_select.substr(1,p_select.length())); @@ -660,7 +659,7 @@ void EditorHelp::_add_type(const String& p_type) { t="void"; bool can_ref = (t!="int" && t!="real" && t!="bool" && t!="void"); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color")); if (can_ref) class_desc->push_meta("#"+t); //class class_desc->add_text(t); @@ -675,7 +674,7 @@ void EditorHelp::_scroll_changed(double p_scroll) { if (scroll_locked) return; - if (class_desc->get_v_scroll()->is_hidden()) + if (!class_desc->get_v_scroll()->is_visible()) p_scroll=0; //history[p].scroll=p_scroll; @@ -719,9 +718,9 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { h_color=Color(1,1,1,1); class_desc->push_font(doc_title_font); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->add_text(TTR("Class:")+" "); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color")); _add_text(p_class); class_desc->pop(); class_desc->pop(); @@ -730,7 +729,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { if (cd.inherits!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Inherits:")+" "); class_desc->pop(); @@ -754,7 +753,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->add_newline(); } - if (ObjectTypeDB::type_exists(cd.name)) { + if (ClassDB::class_exists(cd.name)) { bool found = false; bool prev = false; @@ -764,7 +763,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { if (E->get().inherits == cd.name) { if (!found) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Inherited by:")+" "); class_desc->pop(); @@ -795,7 +794,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { if (cd.brief_description!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Brief Description:")); class_desc->pop(); @@ -803,7 +802,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { //class_desc->add_newline(); class_desc->add_newline(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); class_desc->push_font( doc_font ); class_desc->push_indent(1); _add_text(cd.brief_description); @@ -814,37 +813,132 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->add_newline(); } + Set<String> skip_methods; + bool property_descr=false; + + if (cd.properties.size()) { + + + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); + class_desc->push_font(doc_title_font); + class_desc->add_text(TTR("Members:")); + class_desc->pop(); + class_desc->pop(); + //class_desc->add_newline(); + + class_desc->push_indent(1); + class_desc->push_table(2); + class_desc->set_table_column_expand(1,1); + + for(int i=0;i<cd.properties.size();i++) { + property_line[cd.properties[i].name]=class_desc->get_line_count()-2; //gets overriden if description + + class_desc->push_cell(); + class_desc->push_align(RichTextLabel::ALIGN_RIGHT); + class_desc->push_font(doc_code_font); + _add_type(cd.properties[i].type); + class_desc->add_text(" "); + class_desc->pop(); + class_desc->pop(); + class_desc->pop(); + + bool describe=false; + + if (cd.properties[i].setter!="") { + skip_methods.insert(cd.properties[i].setter); + describe=true; + + } + if (cd.properties[i].getter!="") { + skip_methods.insert(cd.properties[i].getter); + describe=true; + } + + if (cd.properties[i].description!="") { + describe=true; + + } + class_desc->push_cell(); + if (describe) { + class_desc->push_meta("@"+cd.properties[i].name); + } + + class_desc->push_font(doc_code_font); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); + _add_text(cd.properties[i].name); + + if (describe) { + class_desc->pop(); + } + + + if (cd.properties[i].brief_description!="") { + class_desc->push_font(doc_font); + class_desc->add_text(" "); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color")); + _add_text(cd.properties[i].description); + class_desc->pop(); + class_desc->pop(); + + } + + if (describe) { + property_descr=true; + } + + + class_desc->pop(); + class_desc->pop(); + class_desc->pop(); + + } + + + class_desc->pop(); //table + class_desc->pop(); + class_desc->add_newline(); + class_desc->add_newline(); + } + + bool method_descr=false; - bool sort_methods = EditorSettings::get_singleton()->get("help/sort_functions_alphabetically"); + bool sort_methods = EditorSettings::get_singleton()->get("text_editor/help/sort_functions_alphabetically"); + Vector<DocData::MethodDoc> methods; + + for(int i=0;i<cd.methods.size();i++) { + if (skip_methods.has(cd.methods[i].name)) + continue; + methods.push_back(cd.methods[i]); + } - if (cd.methods.size()) { + if (methods.size()) { if (sort_methods) - cd.methods.sort(); + methods.sort(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Public Methods:")); class_desc->pop(); class_desc->pop(); //class_desc->add_newline(); -// class_desc->add_newline(); + //class_desc->add_newline(); class_desc->push_indent(1); class_desc->push_table(2); class_desc->set_table_column_expand(1,1); - for(int i=0;i<cd.methods.size();i++) { + for(int i=0;i<methods.size();i++) { class_desc->push_cell(); - method_line[cd.methods[i].name]=class_desc->get_line_count()-2; //gets overriden if description + method_line[methods[i].name]=class_desc->get_line_count()-2; //gets overriden if description class_desc->push_align(RichTextLabel::ALIGN_RIGHT); class_desc->push_font(doc_code_font); - _add_type(cd.methods[i].return_type); + _add_type(methods[i].return_type); //class_desc->add_text(" "); class_desc->pop(); //align class_desc->pop(); //font @@ -852,58 +946,58 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->push_cell(); class_desc->push_font(doc_code_font); - if (cd.methods[i].description!="") { + if (methods[i].description!="") { method_descr=true; - class_desc->push_meta("@"+cd.methods[i].name); + class_desc->push_meta("@"+methods[i].name); } - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); - _add_text(cd.methods[i].name); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); + _add_text(methods[i].name); class_desc->pop(); - if (cd.methods[i].description!="") + if (methods[i].description!="") class_desc->pop(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); - class_desc->add_text(cd.methods[i].arguments.size()?"( ":"("); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); + class_desc->add_text(methods[i].arguments.size()?"( ":"("); class_desc->pop(); - for(int j=0;j<cd.methods[i].arguments.size();j++) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + for(int j=0;j<methods[i].arguments.size();j++) { + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); if (j>0) class_desc->add_text(", "); - _add_type(cd.methods[i].arguments[j].type); + _add_type(methods[i].arguments[j].type); class_desc->add_text(" "); - _add_text(cd.methods[i].arguments[j].name); - if (cd.methods[i].arguments[j].default_value!="") { + _add_text(methods[i].arguments[j].name); + if (methods[i].arguments[j].default_value!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); class_desc->add_text("="); class_desc->pop(); - _add_text(cd.methods[i].arguments[j].default_value); + _add_text(methods[i].arguments[j].default_value); } class_desc->pop(); } - if (cd.methods[i].qualifiers.find("vararg")!=-1) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + if (methods[i].qualifiers.find("vararg")!=-1) { + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); class_desc->add_text(","); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); class_desc->add_text(" ... "); class_desc->pop(); class_desc->pop(); } - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); - class_desc->add_text(cd.methods[i].arguments.size()?" )":")"); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); + class_desc->add_text(methods[i].arguments.size()?" )":")"); class_desc->pop(); - if (cd.methods[i].qualifiers!="") { + if (methods[i].qualifiers!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->add_text(" "); - _add_text(cd.methods[i].qualifiers); + _add_text(methods[i].qualifiers); class_desc->pop(); } class_desc->pop();//monofont -// class_desc->add_newline(); + //class_desc->add_newline(); class_desc->pop(); //cell } @@ -914,53 +1008,11 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { } - if (cd.properties.size()) { - - - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); - class_desc->push_font(doc_title_font); - class_desc->add_text(TTR("Members:")); - class_desc->pop(); - class_desc->pop(); - class_desc->add_newline(); - - class_desc->push_indent(1); - - //class_desc->add_newline(); - - for(int i=0;i<cd.properties.size();i++) { - - property_line[cd.properties[i].name]=class_desc->get_line_count()-2; //gets overriden if description - class_desc->push_font(doc_code_font); - _add_type(cd.properties[i].type); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); - class_desc->add_text(" "); - _add_text(cd.properties[i].name); - class_desc->pop(); - class_desc->pop(); - - if (cd.properties[i].description!="") { - class_desc->push_font(doc_font); - class_desc->add_text(" "); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color")); - _add_text(cd.properties[i].description); - class_desc->pop(); - class_desc->pop(); - - } - - class_desc->add_newline(); - } - - - class_desc->pop(); - class_desc->add_newline(); - } if (cd.theme_properties.size()) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("GUI Theme Items:")); class_desc->pop(); @@ -976,7 +1028,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { theme_property_line[cd.theme_properties[i].name]=class_desc->get_line_count()-2; //gets overriden if description class_desc->push_font(doc_code_font); _add_type(cd.theme_properties[i].type); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); class_desc->add_text(" "); _add_text(cd.theme_properties[i].name); class_desc->pop(); @@ -985,7 +1037,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { if (cd.theme_properties[i].description!="") { class_desc->push_font(doc_font); class_desc->add_text(" "); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color")); _add_text(cd.theme_properties[i].description); class_desc->pop(); class_desc->pop(); @@ -1004,7 +1056,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { if (sort_methods) { cd.signals.sort(); } - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Signals:")); class_desc->pop(); @@ -1021,14 +1073,14 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->push_font(doc_code_font); // monofont //_add_type("void"); //class_desc->add_text(" "); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); _add_text(cd.signals[i].name); class_desc->pop(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); class_desc->add_text(cd.signals[i].arguments.size()?"( ":"("); class_desc->pop(); for(int j=0;j<cd.signals[i].arguments.size();j++) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); if (j>0) class_desc->add_text(", "); _add_type(cd.signals[i].arguments[j].type); @@ -1036,7 +1088,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { _add_text(cd.signals[i].arguments[j].name); if (cd.signals[i].arguments[j].default_value!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); class_desc->add_text("="); class_desc->pop(); _add_text(cd.signals[i].arguments[j].default_value); @@ -1045,13 +1097,13 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->pop(); } - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); class_desc->add_text(cd.signals[i].arguments.size()?" )":")"); class_desc->pop(); class_desc->pop(); // end monofont if (cd.signals[i].description!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color")); class_desc->add_text(" "); _add_text(cd.signals[i].description); class_desc->pop(); @@ -1069,7 +1121,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { if (cd.constants.size()) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Constants:")); class_desc->pop(); @@ -1083,20 +1135,20 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { constant_line[cd.constants[i].name]=class_desc->get_line_count()-2; class_desc->push_font(doc_code_font); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color")); _add_text(cd.constants[i].name); class_desc->pop(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); class_desc->add_text(" = "); class_desc->pop(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); _add_text(cd.constants[i].value); class_desc->pop(); class_desc->pop(); if (cd.constants[i].description!="") { class_desc->push_font(doc_font); class_desc->add_text(" "); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color")); _add_text(cd.constants[i].description); class_desc->pop(); class_desc->pop(); @@ -1114,7 +1166,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { if (cd.description!="") { description_line=class_desc->get_line_count()-2; - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Description:")); class_desc->pop(); @@ -1122,7 +1174,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->add_newline(); class_desc->add_newline(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); class_desc->push_font( doc_font ); class_desc->push_indent(1); _add_text(cd.description); @@ -1133,9 +1185,92 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->add_newline(); } + if (property_descr) { + + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); + class_desc->push_font(doc_title_font); + class_desc->add_text(TTR("Property Description:")); + class_desc->pop(); + class_desc->pop(); + + class_desc->add_newline(); + class_desc->add_newline(); + + + for(int i=0;i<cd.properties.size();i++) { + + method_line[cd.properties[i].name]=class_desc->get_line_count()-2; + + class_desc->push_font(doc_code_font); + _add_type(cd.properties[i].type); + + class_desc->add_text(" "); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); + _add_text(cd.properties[i].name); + class_desc->pop(); //color + + class_desc->add_text(" "); + + class_desc->pop(); //font + + if (cd.properties[i].setter!="") { + + class_desc->push_font( doc_font ); + + class_desc->push_indent(2); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); + class_desc->add_text("Setter: "); + class_desc->pop(); + + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); + class_desc->add_text(cd.properties[i].setter+"(value)"); + class_desc->pop(); //color + + class_desc->pop(); //indent + + class_desc->pop(); //font + + } + + if (cd.properties[i].getter!="") { + + class_desc->push_font( doc_font ); + + class_desc->push_indent(2); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); + class_desc->add_text("Getter: "); + class_desc->pop(); + + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); + class_desc->add_text(cd.properties[i].getter+"()"); + class_desc->pop(); //color + + class_desc->pop(); //indent + + class_desc->pop(); //font + + } + + class_desc->add_newline(); + + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); + class_desc->push_font( doc_font ); + class_desc->push_indent(1); + _add_text(cd.properties[i].description); + class_desc->pop(); + class_desc->pop(); + class_desc->pop(); + class_desc->add_newline(); + class_desc->add_newline(); + class_desc->add_newline(); + + } + + } + if (method_descr) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->push_font(doc_title_font); class_desc->add_text(TTR("Method Description:")); class_desc->pop(); @@ -1145,46 +1280,46 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->add_newline(); - for(int i=0;i<cd.methods.size();i++) { + for(int i=0;i<methods.size();i++) { - method_line[cd.methods[i].name]=class_desc->get_line_count()-2; + method_line[methods[i].name]=class_desc->get_line_count()-2; class_desc->push_font(doc_code_font); - _add_type(cd.methods[i].return_type); + _add_type(methods[i].return_type); class_desc->add_text(" "); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); - _add_text(cd.methods[i].name); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); + _add_text(methods[i].name); class_desc->pop(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); - class_desc->add_text(cd.methods[i].arguments.size()?"( ":"("); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); + class_desc->add_text(methods[i].arguments.size()?"( ":"("); class_desc->pop(); - for(int j=0;j<cd.methods[i].arguments.size();j++) { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + for(int j=0;j<methods[i].arguments.size();j++) { + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); if (j>0) class_desc->add_text(", "); - _add_type(cd.methods[i].arguments[j].type); + _add_type(methods[i].arguments[j].type); class_desc->add_text(" "); - _add_text(cd.methods[i].arguments[j].name); - if (cd.methods[i].arguments[j].default_value!="") { + _add_text(methods[i].arguments[j].name); + if (methods[i].arguments[j].default_value!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); class_desc->add_text("="); class_desc->pop(); - _add_text(cd.methods[i].arguments[j].default_value); + _add_text(methods[i].arguments[j].default_value); } class_desc->pop(); } - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color")); - class_desc->add_text(cd.methods[i].arguments.size()?" )":")"); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color")); + class_desc->add_text(methods[i].arguments.size()?" )":")"); class_desc->pop(); - if (cd.methods[i].qualifiers!="") { + if (methods[i].qualifiers!="") { - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); class_desc->add_text(" "); - _add_text(cd.methods[i].qualifiers); + _add_text(methods[i].qualifiers); class_desc->pop(); } @@ -1192,10 +1327,10 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) { class_desc->pop(); class_desc->add_newline(); - class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); class_desc->push_font( doc_font ); class_desc->push_indent(1); - _add_text(cd.methods[i].description); + _add_text(methods[i].description); class_desc->pop(); class_desc->pop(); class_desc->pop(); @@ -1272,7 +1407,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) { DocData *doc = EditorHelp::get_doc_data(); String base_path; - /*p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/text_color")); + /*p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color")); p_rt->push_font( get_font("normal","Fonts") ); p_rt->push_indent(1);*/ int pos = 0; @@ -1388,7 +1523,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) { } else if (tag.begins_with("method ")) { String m = tag.substr(7,tag.length()); - p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); p_rt->push_meta("@"+m); p_rt->add_text(m+"()"); p_rt->pop(); @@ -1398,7 +1533,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) { } else if (doc->class_list.has(tag)) { - p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color")); + p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")); p_rt->push_meta("#"+tag); p_rt->add_text(tag); p_rt->pop(); @@ -1414,7 +1549,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) { } else if (tag=="i") { //use italics font - Color text_color = EditorSettings::get_singleton()->get("text_editor/text_color"); + Color text_color = EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"); //no italics so emphasize with color text_color.r*=1.1; text_color.g*=1.1; @@ -1599,8 +1734,8 @@ void EditorHelp::_notification(int p_what) { case NOTIFICATION_READY: { -// forward->set_icon(get_icon("Forward","EditorIcons")); -// back->set_icon(get_icon("Back","EditorIcons")); + //forward->set_icon(get_icon("Forward","EditorIcons")); + //back->set_icon(get_icon("Back","EditorIcons")); _update_doc(); } break; @@ -1629,7 +1764,7 @@ void EditorHelp::_search_cbk() { _search(search->get_text()); } -String EditorHelp::get_class_name() { +String EditorHelp::get_class() { return edited_class; } @@ -1640,27 +1775,27 @@ void EditorHelp::search_again() { int EditorHelp::get_scroll() const { - return class_desc->get_v_scroll()->get_val(); + return class_desc->get_v_scroll()->get_value(); } void EditorHelp::set_scroll(int p_scroll) { - class_desc->get_v_scroll()->set_val(p_scroll); + class_desc->get_v_scroll()->set_value(p_scroll); } void EditorHelp::_bind_methods() { - ObjectTypeDB::bind_method("_class_list_select",&EditorHelp::_class_list_select); - ObjectTypeDB::bind_method("_class_desc_select",&EditorHelp::_class_desc_select); - ObjectTypeDB::bind_method("_class_desc_input",&EditorHelp::_class_desc_input); -// ObjectTypeDB::bind_method("_button_pressed",&EditorHelp::_button_pressed); - ObjectTypeDB::bind_method("_scroll_changed",&EditorHelp::_scroll_changed); - ObjectTypeDB::bind_method("_request_help",&EditorHelp::_request_help); - ObjectTypeDB::bind_method("_unhandled_key_input",&EditorHelp::_unhandled_key_input); - ObjectTypeDB::bind_method("_search",&EditorHelp::_search); - ObjectTypeDB::bind_method("_search_cbk",&EditorHelp::_search_cbk); - ObjectTypeDB::bind_method("_help_callback",&EditorHelp::_help_callback); + ClassDB::bind_method("_class_list_select",&EditorHelp::_class_list_select); + ClassDB::bind_method("_class_desc_select",&EditorHelp::_class_desc_select); + ClassDB::bind_method("_class_desc_input",&EditorHelp::_class_desc_input); + //ClassDB::bind_method("_button_pressed",&EditorHelp::_button_pressed); + ClassDB::bind_method("_scroll_changed",&EditorHelp::_scroll_changed); + ClassDB::bind_method("_request_help",&EditorHelp::_request_help); + ClassDB::bind_method("_unhandled_key_input",&EditorHelp::_unhandled_key_input); + ClassDB::bind_method("_search",&EditorHelp::_search); + ClassDB::bind_method("_search_cbk",&EditorHelp::_search_cbk); + ClassDB::bind_method("_help_callback",&EditorHelp::_help_callback); ADD_SIGNAL(MethodInfo("go_to_help")); @@ -1672,7 +1807,7 @@ EditorHelp::EditorHelp() { VBoxContainer *vbc = this; - EDITOR_DEF("help/sort_functions_alphabetically",true); + EDITOR_DEF("text_editor/help/sort_functions_alphabetically",true); //class_list->connect("meta_clicked",this,"_class_list_select"); //class_list->set_selection_enabled(true); @@ -1680,7 +1815,7 @@ EditorHelp::EditorHelp() { { Panel *pc = memnew( Panel ); Ref<StyleBoxFlat> style( memnew( StyleBoxFlat ) ); - style->set_bg_color( EditorSettings::get_singleton()->get("text_editor/background_color") ); + style->set_bg_color( EditorSettings::get_singleton()->get("text_editor/highlighting/background_color") ); pc->set_v_size_flags(SIZE_EXPAND_FILL); pc->add_style_override("panel", style); //get_stylebox("normal","TextEdit")); vbc->add_child(pc); @@ -1688,7 +1823,7 @@ EditorHelp::EditorHelp() { pc->add_child(class_desc); class_desc->set_area_as_parent_rect(8); class_desc->connect("meta_clicked",this,"_class_desc_select"); - class_desc->connect("input_event",this,"_class_desc_input"); + class_desc->connect("gui_input",this,"_class_desc_input"); } class_desc->get_v_scroll()->connect("value_changed",this,"_scroll_changed"); @@ -1703,21 +1838,21 @@ EditorHelp::EditorHelp() { add_child(search_dialog); VBoxContainer *search_vb = memnew( VBoxContainer ); search_dialog->add_child(search_vb); - search_dialog->set_child_rect(search_vb); + search = memnew( LineEdit ); search_dialog->register_text_enter(search); search_vb->add_margin_child(TTR("Search Text"),search); search_dialog->get_ok()->set_text(TTR("Find")); search_dialog->connect("confirmed",this,"_search_cbk"); search_dialog->set_hide_on_ok(false); - search_dialog->set_self_opacity(0.8); + search_dialog->set_self_modulate(Color(1,1,1,0.8)); /*class_search = memnew( EditorHelpSearch(editor) ); editor->get_gui_base()->add_child(class_search); class_search->connect("go_to_help",this,"_help_callback");*/ -// prev_search_page=-1; + //prev_search_page=-1; } EditorHelp::~EditorHelp() { @@ -1737,8 +1872,7 @@ void EditorHelpBit::_go_to_help(String p_what) { void EditorHelpBit::_meta_clicked(String p_select) { - - // print_line("LINK: "+p_select); + //print_line("LINK: "+p_select); if (p_select.begins_with("#")) { //_goto_desc(p_select.substr(1,p_select.length())); _go_to_help("class_name:"+p_select.substr(1,p_select.length())); @@ -1752,10 +1886,11 @@ void EditorHelpBit::_meta_clicked(String p_select) { _go_to_help("class_method:"+m.get_slice(".",0)+":"+m.get_slice(".",0)); } else { -// - // if (!method_line.has(m)) - // return; - //class_desc->scroll_to_line(method_line[m]); + /* + if (!method_line.has(m)) + return; + class_desc->scroll_to_line(method_line[m]); + */ } } @@ -1765,7 +1900,7 @@ void EditorHelpBit::_meta_clicked(String p_select) { void EditorHelpBit::_bind_methods() { - ObjectTypeDB::bind_method("_meta_clicked",&EditorHelpBit::_meta_clicked); + ClassDB::bind_method("_meta_clicked",&EditorHelpBit::_meta_clicked); ADD_SIGNAL(MethodInfo("request_hide")); } diff --git a/tools/editor/editor_help.h b/tools/editor/editor_help.h index b0dc2809fe..85bac27705 100644 --- a/tools/editor/editor_help.h +++ b/tools/editor/editor_help.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -47,7 +47,7 @@ class EditorNode; class EditorHelpSearch : public ConfirmationDialog { - OBJ_TYPE(EditorHelpSearch,ConfirmationDialog ) + GDCLASS(EditorHelpSearch,ConfirmationDialog ) EditorNode *editor; LineEdit *search_box; @@ -75,7 +75,7 @@ public: }; class EditorHelpIndex : public ConfirmationDialog { - OBJ_TYPE( EditorHelpIndex, ConfirmationDialog ); + GDCLASS( EditorHelpIndex, ConfirmationDialog ); LineEdit *search_box; Tree *class_list; @@ -104,7 +104,7 @@ public: class EditorHelp : public VBoxContainer { - OBJ_TYPE( EditorHelp, VBoxContainer ); + GDCLASS( EditorHelp, VBoxContainer ); enum Page { @@ -187,7 +187,7 @@ public: void popup_search(); void search_again(); - String get_class_name(); + String get_class(); void set_focused() { class_desc->grab_focus(); } @@ -202,7 +202,7 @@ public: class EditorHelpBit : public Panel { - OBJ_TYPE( EditorHelpBit, Panel); + GDCLASS( EditorHelpBit, Panel); RichTextLabel *rich_text; void _go_to_help(String p_what); diff --git a/tools/editor/editor_icons.h b/tools/editor/editor_icons.h index 191b908682..7e8d8c0828 100644 --- a/tools/editor/editor_icons.h +++ b/tools/editor/editor_icons.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/editor_import_export.cpp b/tools/editor/editor_import_export.cpp index d90a175811..6ef238920d 100644 --- a/tools/editor/editor_import_export.cpp +++ b/tools/editor/editor_import_export.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,9 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "version.h" #include "editor_import_export.h" + +#include "version.h" #include "script_language.h" #include "globals.h" #include "os/file_access.h" @@ -46,8 +47,8 @@ String EditorImportPlugin::validate_source_path(const String& p_path) { - String gp = Globals::get_singleton()->globalize_path(p_path); - String rp = Globals::get_singleton()->get_resource_path(); + String gp = GlobalConfig::get_singleton()->globalize_path(p_path); + String rp = GlobalConfig::get_singleton()->get_resource_path(); if (!rp.ends_with("/")) rp+="/"; @@ -57,7 +58,7 @@ String EditorImportPlugin::validate_source_path(const String& p_path) { String EditorImportPlugin::expand_source_path(const String& p_path) { if (p_path.is_rel_path()) { - return Globals::get_singleton()->get_resource_path().plus_file(p_path).simplify_path(); + return GlobalConfig::get_singleton()->get_resource_path().plus_file(p_path).simplify_path(); } else { return p_path; } @@ -77,19 +78,19 @@ String EditorImportPlugin::_expand_source_path(const String& p_path) { void EditorImportPlugin::_bind_methods() { - ObjectTypeDB::bind_method(_MD("validate_source_path","path"),&EditorImportPlugin::_validate_source_path); - ObjectTypeDB::bind_method(_MD("expand_source_path","path"),&EditorImportPlugin::_expand_source_path); + ClassDB::bind_method(_MD("validate_source_path","path"),&EditorImportPlugin::_validate_source_path); + ClassDB::bind_method(_MD("expand_source_path","path"),&EditorImportPlugin::_expand_source_path); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING,"get_name")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING,"get_visible_name")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("import_dialog",PropertyInfo(Variant::STRING,"from"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::INT,"import",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"ResourceImportMetadata"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::RAW_ARRAY,"custom_export",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"platform",PROPERTY_HINT_RESOURCE_TYPE,"EditorExportPlatform"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("import_from_drop",PropertyInfo(Variant::STRING_ARRAY,"files"),PropertyInfo(Variant::STRING,"dest_path"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("reimport_multiple_files",PropertyInfo(Variant::STRING_ARRAY,"files"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"can_reimport_multiple_files")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::STRING,"get_name")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::STRING,"get_visible_name")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("import_dialog",PropertyInfo(Variant::STRING,"from"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::INT,"import",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"ResourceImportMetadata"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::POOL_BYTE_ARRAY,"custom_export",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"platform",PROPERTY_HINT_RESOURCE_TYPE,"EditorExportPlatform"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("import_from_drop",PropertyInfo(Variant::POOL_STRING_ARRAY,"files"),PropertyInfo(Variant::STRING,"dest_path"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("reimport_multiple_files",PropertyInfo(Variant::POOL_STRING_ARRAY,"files"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"can_reimport_multiple_files")); -// BIND_VMETHOD( mi ); + //BIND_VMETHOD( mi ); } String EditorImportPlugin::get_name() const { @@ -175,7 +176,7 @@ EditorImportPlugin::EditorImportPlugin() { void EditorExportPlugin::_bind_methods() { MethodInfo mi = MethodInfo("custom_export:Variant",PropertyInfo(Variant::STRING,"name"),PropertyInfo(Variant::OBJECT,"platform",PROPERTY_HINT_RESOURCE_TYPE,"EditorExportPlatform")); - mi.return_val.type=Variant::RAW_ARRAY; + mi.return_val.type=Variant::POOL_BYTE_ARRAY; BIND_VMETHOD( mi ); } @@ -188,7 +189,7 @@ Vector<uint8_t> EditorExportPlugin::custom_export(String& p_path,const Ref<Edito Variant d = get_script_instance()->call("custom_export",p_path,p_platform); if (d.get_type()==Variant::NIL) return Vector<uint8_t>(); - if (d.get_type()==Variant::RAW_ARRAY) + if (d.get_type()==Variant::POOL_BYTE_ARRAY) return d; ERR_FAIL_COND_V(d.get_type()!=Variant::DICTIONARY,Vector<uint8_t>()); @@ -420,11 +421,12 @@ Vector<StringName> EditorExportPlatform::get_dependencies(bool p_bundles) const { List<String> l; - // SceneLoader::get_recognized_extensions(&l); - // for(List<String>::Element *E=l.front();E;E=E->next()) { - // - // scene_extensions.insert(E->get()); - // } + /* + SceneLoader::get_recognized_extensions(&l); + for(List<String>::Element *E=l.front();E;E=E->next()) { + scene_extensions.insert(E->get()); + } + */ ResourceLoader::get_recognized_extensions_for_type("",&l); for(List<String>::Element *E=l.front();E;E=E->next()) { @@ -765,7 +767,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func { MD5_CTX ctx; MD5Init(&ctx); - String path = Globals::get_singleton()->get_resource_path()+"::"+String(E->get())+"::"+get_name(); + String path = GlobalConfig::get_singleton()->get_resource_path()+"::"+String(E->get())+"::"+get_name(); MD5Update(&ctx,(unsigned char*)path.utf8().get_data(),path.utf8().length()); MD5Final(&ctx); md5 = String::md5(ctx.digest); @@ -783,7 +785,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func if (atlas_valid) { //compare options - Dictionary options; + /*Dictionary options; options.parse_json(f->get_line()); if (!options.has("lossy_quality") || float(options["lossy_quality"])!=group_lossy_quality) atlas_valid=false; @@ -794,7 +796,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func if (!atlas_valid) print_line("JSON INVALID"); - +*/ } @@ -874,11 +876,11 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func int flags=0; - if (Globals::get_singleton()->get("image_loader/filter")) + if (GlobalConfig::get_singleton()->get("image_loader/filter")) flags|=EditorTextureImportPlugin::IMAGE_FLAG_FILTER; - if (!Globals::get_singleton()->get("image_loader/gen_mipmaps")) + if (!GlobalConfig::get_singleton()->get("image_loader/gen_mipmaps")) flags|=EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS; - if (!Globals::get_singleton()->get("image_loader/repeat")) + if (!GlobalConfig::get_singleton()->get("image_loader/repeat")) flags|=EditorTextureImportPlugin::IMAGE_FLAG_REPEAT; flags|=EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA; @@ -921,7 +923,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func options["lossy_quality"]=group_lossy_quality; options["shrink"]=EditorImportExport::get_singleton()->image_export_group_get_shrink(E->get()); options["image_format"]=group_format; - f->store_line(options.to_json()); + //f->store_line(options.to_json()); f->store_line(image_list_md5); } @@ -949,7 +951,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func return ERR_CANT_CREATE; } Vector<uint8_t> data = FileAccess::get_file_as_array(path); - String dst_path = F->get().operator String().basename()+".atex"; + String dst_path = F->get().operator String().get_basename()+".atex"; err = p_func(p_udata,dst_path,data,counter++,files.size()); saved.insert(dst_path); if (err) @@ -958,7 +960,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func if (f) { //recreating deps.. String depline; -// depline=String(F->get())+"::"+itos(FileAccess::get_modified_time(F->get()))+"::"+FileAccess::get_md5(F->get()); name unneccesary by top md5 + //depline=String(F->get())+"::"+itos(FileAccess::get_modified_time(F->get()))+"::"+FileAccess::get_md5(F->get()); name unneccesary by top md5 depline=itos(FileAccess::get_modified_time(F->get()))+"::"+FileAccess::get_md5(F->get()); depline+="::"+itos(region.pos.x)+"::"+itos(region.pos.y)+"::"+itos(region.size.x)+"::"+itos(region.size.y); depline+="::"+itos(margin.pos.x)+"::"+itos(margin.pos.y)+"::"+itos(margin.size.x)+"::"+itos(margin.size.y); @@ -987,7 +989,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func StringName engine_cfg="res://engine.cfg"; StringName boot_splash; { - String splash=Globals::get_singleton()->get("application/boot_splash"); //avoid splash from being converted + String splash=GlobalConfig::get_singleton()->get("application/boot_splash"); //avoid splash from being converted splash=splash.strip_edges(); if (splash!=String()) { if (!splash.begins_with("res://")) @@ -998,7 +1000,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func } StringName custom_cursor; { - String splash=Globals::get_singleton()->get("display/custom_mouse_cursor"); //avoid splash from being converted + String splash=GlobalConfig::get_singleton()->get("display/custom_mouse_cursor"); //avoid splash from being converted splash=splash.strip_edges(); if (splash!=String()) { if (!splash.begins_with("res://")) @@ -1084,7 +1086,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func String remap_file="engine.cfb"; String engine_cfb =EditorSettings::get_singleton()->get_settings_path()+"/tmp/tmp"+remap_file; - Globals::get_singleton()->save_custom(engine_cfb,custom); + GlobalConfig::get_singleton()->save_custom(engine_cfb,custom); Vector<uint8_t> data = FileAccess::get_file_as_array(engine_cfb); Error err = p_func(p_udata,"res://"+remap_file,data,counter,files.size()); @@ -1115,8 +1117,8 @@ void EditorExportPlatform::gen_export_flags(Vector<String> &r_flags, int p_flags host="localhost"; if (p_flags&EXPORT_DUMB_CLIENT) { - int port = EditorSettings::get_singleton()->get("file_server/port"); - String passwd = EditorSettings::get_singleton()->get("file_server/password"); + int port = EditorSettings::get_singleton()->get("filesystem/file_server/port"); + String passwd = EditorSettings::get_singleton()->get("filesystem/file_server/password"); r_flags.push_back("-rfs"); r_flags.push_back(host+":"+itos(port)); if (passwd!="") { @@ -1129,7 +1131,7 @@ void EditorExportPlatform::gen_export_flags(Vector<String> &r_flags, int p_flags r_flags.push_back("-rdebug"); - r_flags.push_back(host+":"+String::num(GLOBAL_DEF("debug/debug_port", 6007))); + r_flags.push_back(host+":"+String::num(GLOBAL_DEF("network/debug/remote_port", 6007))); List<String> breakpoints; ScriptEditor::get_singleton()->get_breakpoints(&breakpoints); @@ -1173,7 +1175,7 @@ Error EditorExportPlatform::save_pack_file(void *p_userdata,const String& p_path pd->f->store_32(cs.length()); pd->f->store_buffer((uint8_t*)cs.get_data(),cs.length()); TempData td; - td.pos=pd->f->get_pos();; + td.pos=pd->f->get_pos(); td.ofs=pd->ftmp->get_pos(); td.size=p_data.size(); pd->file_ofs.push_back(td); @@ -2092,13 +2094,21 @@ void EditorImportExport::save_config() { if (image_groups.size() && image_group_files.size()){ - Vector<String> igfsave; - igfsave.resize(image_group_files.size()*2); + Vector<String> igfkeys; + igfkeys.resize(image_group_files.size()); int idx=0; for (Map<StringName,StringName>::Element *E=image_group_files.front();E;E=E->next()) { + igfkeys[idx++]=E->key(); + } + igfkeys.sort(); + + Vector<String> igfsave; + igfsave.resize(image_group_files.size()*2); + idx=0; + for (int i=0;i<igfkeys.size();++i) { - igfsave[idx++]=E->key(); - igfsave[idx++]=E->get(); + igfsave[idx++]=igfkeys[i]; + igfsave[idx++]=image_group_files[igfkeys[i]]; } cf->set_value("image_group_files","files",igfsave); } @@ -2174,9 +2184,9 @@ bool EditorImportExport::sample_get_trim() const{ return sample_action_trim; } -DVector<String> EditorImportExport::_get_export_file_list() { +PoolVector<String> EditorImportExport::_get_export_file_list() { - DVector<String> fl; + PoolVector<String> fl; for (Map<StringName,FileAction>::Element *E=files.front();E;E=E->next()) { fl.push_back(E->key()); @@ -2185,9 +2195,9 @@ DVector<String> EditorImportExport::_get_export_file_list() { return fl; } -DVector<String> EditorImportExport::_get_export_platforms() { +PoolVector<String> EditorImportExport::_get_export_platforms() { - DVector<String> ep; + PoolVector<String> ep; for (Map<StringName,Ref<EditorExportPlatform> >::Element *E=exporters.front();E;E=E->next()) { ep.push_back(E->key()); @@ -2199,49 +2209,49 @@ DVector<String> EditorImportExport::_get_export_platforms() { void EditorImportExport::_bind_methods() { - ObjectTypeDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::add_import_plugin); - ObjectTypeDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::remove_import_plugin); - ObjectTypeDB::bind_method(_MD("get_import_plugin_count"),&EditorImportExport::get_import_plugin_count); - ObjectTypeDB::bind_method(_MD("get_import_plugin:EditorImportPlugin","idx"),&EditorImportExport::get_import_plugin); - ObjectTypeDB::bind_method(_MD("get_import_plugin_by_name:EditorImportPlugin","name"),&EditorImportExport::get_import_plugin_by_name); - - ObjectTypeDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::add_export_plugin); - ObjectTypeDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::remove_export_plugin); - ObjectTypeDB::bind_method(_MD("get_export_plugin_count"),&EditorImportExport::get_export_plugin_count); - ObjectTypeDB::bind_method(_MD("get_export_plugin:EditorExportPlugin","idx"),&EditorImportExport::get_export_plugin); - - ObjectTypeDB::bind_method(_MD("set_export_file_action","file","action"),&EditorImportExport::set_export_file_action); - ObjectTypeDB::bind_method(_MD("get_export_file_action","file"),&EditorImportExport::get_export_file_action); - ObjectTypeDB::bind_method(_MD("get_export_file_list"),&EditorImportExport::_get_export_file_list); - - ObjectTypeDB::bind_method(_MD("add_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform); - //ObjectTypeDB::bind_method(_MD("remove_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform); - ObjectTypeDB::bind_method(_MD("get_export_platform:EditorExportPlatform","name"),&EditorImportExport::get_export_platform); - ObjectTypeDB::bind_method(_MD("get_export_platforms"),&EditorImportExport::_get_export_platforms); - - ObjectTypeDB::bind_method(_MD("set_export_filter","filter"),&EditorImportExport::set_export_filter); - ObjectTypeDB::bind_method(_MD("get_export_filter"),&EditorImportExport::get_export_filter); - - ObjectTypeDB::bind_method(_MD("set_export_custom_filter","filter"),&EditorImportExport::set_export_custom_filter); - ObjectTypeDB::bind_method(_MD("get_export_custom_filter"),&EditorImportExport::get_export_custom_filter); - - ObjectTypeDB::bind_method(_MD("set_export_custom_filter_exclude","filter_exclude"),&EditorImportExport::set_export_custom_filter_exclude); - ObjectTypeDB::bind_method(_MD("get_export_custom_filter_exclude"),&EditorImportExport::get_export_custom_filter_exclude); - - - ObjectTypeDB::bind_method(_MD("image_export_group_create"),&EditorImportExport::image_export_group_create); - ObjectTypeDB::bind_method(_MD("image_export_group_remove"),&EditorImportExport::image_export_group_remove); - ObjectTypeDB::bind_method(_MD("image_export_group_set_image_action"),&EditorImportExport::image_export_group_set_image_action); - ObjectTypeDB::bind_method(_MD("image_export_group_set_make_atlas"),&EditorImportExport::image_export_group_set_make_atlas); - ObjectTypeDB::bind_method(_MD("image_export_group_set_shrink"),&EditorImportExport::image_export_group_set_shrink); - ObjectTypeDB::bind_method(_MD("image_export_group_get_image_action"),&EditorImportExport::image_export_group_get_image_action); - ObjectTypeDB::bind_method(_MD("image_export_group_get_make_atlas"),&EditorImportExport::image_export_group_get_make_atlas); - ObjectTypeDB::bind_method(_MD("image_export_group_get_shrink"),&EditorImportExport::image_export_group_get_shrink); - ObjectTypeDB::bind_method(_MD("image_add_to_export_group"),&EditorImportExport::image_add_to_export_group); - ObjectTypeDB::bind_method(_MD("script_set_action"),&EditorImportExport::script_set_action); - ObjectTypeDB::bind_method(_MD("script_set_encryption_key"),&EditorImportExport::script_set_encryption_key); - ObjectTypeDB::bind_method(_MD("script_get_action"),&EditorImportExport::script_get_action); - ObjectTypeDB::bind_method(_MD("script_get_encryption_key"),&EditorImportExport::script_get_encryption_key); + ClassDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::add_import_plugin); + ClassDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::remove_import_plugin); + ClassDB::bind_method(_MD("get_import_plugin_count"),&EditorImportExport::get_import_plugin_count); + ClassDB::bind_method(_MD("get_import_plugin:EditorImportPlugin","idx"),&EditorImportExport::get_import_plugin); + ClassDB::bind_method(_MD("get_import_plugin_by_name:EditorImportPlugin","name"),&EditorImportExport::get_import_plugin_by_name); + + ClassDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::add_export_plugin); + ClassDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::remove_export_plugin); + ClassDB::bind_method(_MD("get_export_plugin_count"),&EditorImportExport::get_export_plugin_count); + ClassDB::bind_method(_MD("get_export_plugin:EditorExportPlugin","idx"),&EditorImportExport::get_export_plugin); + + ClassDB::bind_method(_MD("set_export_file_action","file","action"),&EditorImportExport::set_export_file_action); + ClassDB::bind_method(_MD("get_export_file_action","file"),&EditorImportExport::get_export_file_action); + ClassDB::bind_method(_MD("get_export_file_list"),&EditorImportExport::_get_export_file_list); + + ClassDB::bind_method(_MD("add_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform); + //ClassDB::bind_method(_MD("remove_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform); + ClassDB::bind_method(_MD("get_export_platform:EditorExportPlatform","name"),&EditorImportExport::get_export_platform); + ClassDB::bind_method(_MD("get_export_platforms"),&EditorImportExport::_get_export_platforms); + + ClassDB::bind_method(_MD("set_export_filter","filter"),&EditorImportExport::set_export_filter); + ClassDB::bind_method(_MD("get_export_filter"),&EditorImportExport::get_export_filter); + + ClassDB::bind_method(_MD("set_export_custom_filter","filter"),&EditorImportExport::set_export_custom_filter); + ClassDB::bind_method(_MD("get_export_custom_filter"),&EditorImportExport::get_export_custom_filter); + + ClassDB::bind_method(_MD("set_export_custom_filter_exclude","filter_exclude"),&EditorImportExport::set_export_custom_filter_exclude); + ClassDB::bind_method(_MD("get_export_custom_filter_exclude"),&EditorImportExport::get_export_custom_filter_exclude); + + + ClassDB::bind_method(_MD("image_export_group_create"),&EditorImportExport::image_export_group_create); + ClassDB::bind_method(_MD("image_export_group_remove"),&EditorImportExport::image_export_group_remove); + ClassDB::bind_method(_MD("image_export_group_set_image_action"),&EditorImportExport::image_export_group_set_image_action); + ClassDB::bind_method(_MD("image_export_group_set_make_atlas"),&EditorImportExport::image_export_group_set_make_atlas); + ClassDB::bind_method(_MD("image_export_group_set_shrink"),&EditorImportExport::image_export_group_set_shrink); + ClassDB::bind_method(_MD("image_export_group_get_image_action"),&EditorImportExport::image_export_group_get_image_action); + ClassDB::bind_method(_MD("image_export_group_get_make_atlas"),&EditorImportExport::image_export_group_get_make_atlas); + ClassDB::bind_method(_MD("image_export_group_get_shrink"),&EditorImportExport::image_export_group_get_shrink); + ClassDB::bind_method(_MD("image_add_to_export_group"),&EditorImportExport::image_add_to_export_group); + ClassDB::bind_method(_MD("script_set_action"),&EditorImportExport::script_set_action); + ClassDB::bind_method(_MD("script_set_encryption_key"),&EditorImportExport::script_set_encryption_key); + ClassDB::bind_method(_MD("script_get_action"),&EditorImportExport::script_get_action); + ClassDB::bind_method(_MD("script_get_encryption_key"),&EditorImportExport::script_get_encryption_key); diff --git a/tools/editor/editor_import_export.h b/tools/editor/editor_import_export.h index e21fd8c8f8..fb75373f17 100644 --- a/tools/editor/editor_import_export.h +++ b/tools/editor/editor_import_export.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ struct EditorProgress; class EditorImportPlugin : public Reference { - OBJ_TYPE( EditorImportPlugin, Reference); + GDCLASS( EditorImportPlugin, Reference); protected: @@ -70,7 +70,7 @@ public: class EditorExportPlugin : public Reference { - OBJ_TYPE( EditorExportPlugin, Reference); + GDCLASS( EditorExportPlugin, Reference); protected: static void _bind_methods(); @@ -84,7 +84,7 @@ public: class EditorExportPlatform : public Reference { - OBJ_TYPE( EditorExportPlatform,Reference ); + GDCLASS( EditorExportPlatform,Reference ); public: @@ -187,7 +187,7 @@ public: class EditorExportPlatformPC : public EditorExportPlatform { - OBJ_TYPE( EditorExportPlatformPC,EditorExportPlatform ); + GDCLASS( EditorExportPlatformPC,EditorExportPlatform ); public: @@ -247,7 +247,7 @@ public: class EditorImportExport : public Node { - OBJ_TYPE(EditorImportExport,Node); + GDCLASS(EditorImportExport,Node); public: enum FileAction { @@ -321,8 +321,8 @@ protected: static EditorImportExport* singleton; - DVector<String> _get_export_file_list(); - DVector<String> _get_export_platforms(); + PoolVector<String> _get_export_file_list(); + PoolVector<String> _get_export_platforms(); static void _bind_methods(); public: diff --git a/tools/editor/editor_initialize_ssl.cpp b/tools/editor/editor_initialize_ssl.cpp index c0b55b302f..c08dcc6656 100644 --- a/tools/editor/editor_initialize_ssl.cpp +++ b/tools/editor/editor_initialize_ssl.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_initialize_ssl.h" + #include "certs_compressed.h" #include "io/stream_peer_ssl.h" #include "io/compression.h" @@ -34,11 +35,12 @@ void editor_initialize_certificates() { - ByteArray data; - data.resize(_certs_uncompressed_size); + PoolByteArray data; + data.resize(_certs_uncompressed_size+1); { - ByteArray::Write w = data.write(); + PoolByteArray::Write w = data.write(); Compression::decompress(w.ptr(),_certs_uncompressed_size,_certs_compressed,_certs_compressed_size,Compression::MODE_DEFLATE); + w[_certs_uncompressed_size]=0; //make sure it ends at zero } StreamPeerSSL::load_certs_from_memory(data); diff --git a/tools/editor/editor_initialize_ssl.h b/tools/editor/editor_initialize_ssl.h index 082d546832..0b34ac1d7e 100644 --- a/tools/editor/editor_initialize_ssl.h +++ b/tools/editor/editor_initialize_ssl.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/editor_log.cpp b/tools/editor/editor_log.cpp index 02af9712a8..6b6a1b9988 100644 --- a/tools/editor/editor_log.cpp +++ b/tools/editor/editor_log.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,9 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "version.h" #include "editor_log.h" + +#include "version.h" #include "scene/gui/center_container.h" #include "editor_node.h" @@ -44,8 +45,10 @@ void EditorLog::_error_handler(void *p_self, const char*p_func, const char*p_fil err_str=String(p_file)+":"+itos(p_line)+" - "+String(p_error); } -// if (!self->is_visible()) -// self->emit_signal("show_request"); + /* + if (!self->is_visible_in_tree()) + self->emit_signal("show_request"); + */ err_str=" "+err_str; self->log->add_newline(); @@ -67,6 +70,10 @@ void EditorLog::_error_handler(void *p_self, const char*p_func, const char*p_fil icon = self->get_icon("ScriptError","EditorIcons"); } break; + case ERR_HANDLER_SHADER: { + + icon = self->get_icon("Shader","EditorIcons"); + } break; } @@ -125,7 +132,7 @@ void EditorLog::add_message(const String& p_msg,bool p_error) { log->add_newline(); log->add_text(p_msg); -// button->set_text(p_msg); + //button->set_text(p_msg); if (p_error) log->pop(); @@ -160,9 +167,9 @@ void EditorLog::_undo_redo_cbk(void *p_self,const String& p_name) { void EditorLog::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_clear_request"),&EditorLog::_clear_request ); - ObjectTypeDB::bind_method("_override_logger_styles",&EditorLog::_override_logger_styles ); - //ObjectTypeDB::bind_method(_MD("_dragged"),&EditorLog::_dragged ); + ClassDB::bind_method(_MD("_clear_request"),&EditorLog::_clear_request ); + ClassDB::bind_method("_override_logger_styles",&EditorLog::_override_logger_styles ); + //ClassDB::bind_method(_MD("_dragged"),&EditorLog::_dragged ); ADD_SIGNAL( MethodInfo("clear_request")); } @@ -196,14 +203,14 @@ EditorLog::EditorLog() { pc = memnew( PanelContainer ); ec->add_child(pc); pc->set_area_as_parent_rect(); - pc->connect("enter_tree", this, "_override_logger_styles"); + pc->connect("tree_entered", this, "_override_logger_styles"); log = memnew( RichTextLabel ); log->set_scroll_follow(true); log->set_selection_enabled(true); log->set_focus_mode(FOCUS_CLICK); pc->add_child(log); - add_message(VERSION_FULL_NAME" (c) 2008-2016 Juan Linietsky, Ariel Manzur."); + add_message(VERSION_FULL_NAME" (c) 2008-2017 Juan Linietsky, Ariel Manzur."); //log->add_text("Initialization Complete.\n"); //because it looks cool. eh.errfunc=_error_handler; diff --git a/tools/editor/editor_log.h b/tools/editor/editor_log.h index bbf35b63cb..965d8d6420 100644 --- a/tools/editor/editor_log.h +++ b/tools/editor/editor_log.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -36,19 +36,19 @@ //#include "scene/gui/empty_control.h" #include "scene/gui/box_container.h" #include "scene/gui/panel_container.h" -#include "scene/gui/texture_frame.h" +#include "scene/gui/texture_rect.h" #include "scene/gui/tool_button.h" #include "pane_drag.h" #include "os/thread.h" class EditorLog : public VBoxContainer { - OBJ_TYPE( EditorLog, VBoxContainer ); + GDCLASS( EditorLog, VBoxContainer ); Button *clearbutton; Label *title; RichTextLabel *log; HBoxContainer *title_hb; -// PaneDrag *pd; + //PaneDrag *pd; Control *ec; PanelContainer *pc; @@ -58,7 +58,7 @@ class EditorLog : public VBoxContainer { Thread::ID current; -// void _dragged(const Point2& p_ofs); + //void _dragged(const Point2& p_ofs); void _clear_request(); static void _undo_redo_cbk(void *p_self,const String& p_name); protected: diff --git a/tools/editor/editor_name_dialog.cpp b/tools/editor/editor_name_dialog.cpp index c221b908e0..da9f25f1e3 100644 --- a/tools/editor/editor_name_dialog.cpp +++ b/tools/editor/editor_name_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,12 +26,12 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ - #include "editor_name_dialog.h" -#include "object_type_db.h" + +#include "class_db.h" #include "os/keyboard.h" -void EditorNameDialog::_line_input_event(const InputEvent& p_event) { +void EditorNameDialog::_line_gui_input(const InputEvent& p_event) { if (p_event.type == InputEvent::KEY) { @@ -72,7 +72,7 @@ void EditorNameDialog::ok_pressed() { void EditorNameDialog::_bind_methods() { - ObjectTypeDB::bind_method("_line_input_event",&EditorNameDialog::_line_input_event); + ClassDB::bind_method("_line_gui_input",&EditorNameDialog::_line_gui_input); ADD_SIGNAL(MethodInfo("name_confirmed",PropertyInfo( Variant::STRING,"name"))); } @@ -85,5 +85,5 @@ EditorNameDialog::EditorNameDialog() name->set_margin(MARGIN_TOP,5); name->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN,5); name->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,5); - name->connect("input_event", this, "_line_input_event"); + name->connect("gui_input", this, "_line_gui_input"); } diff --git a/tools/editor/editor_name_dialog.h b/tools/editor/editor_name_dialog.h index 9e66908899..d6bc7eca94 100644 --- a/tools/editor/editor_name_dialog.h +++ b/tools/editor/editor_name_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,11 +35,11 @@ class EditorNameDialog : public ConfirmationDialog { - OBJ_TYPE( EditorNameDialog, ConfirmationDialog ); + GDCLASS( EditorNameDialog, ConfirmationDialog ); LineEdit *name; - void _line_input_event(const InputEvent& p_event); + void _line_gui_input(const InputEvent& p_event); protected: diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp index 5a3deb7b9d..c39dea2d72 100644 --- a/tools/editor/editor_node.cpp +++ b/tools/editor/editor_node.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,22 +26,20 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "version.h" #include "editor_node.h" + +#include "version.h" #include "print_string.h" #include "editor_themes.h" - #include "editor_help.h" #include "core/io/resource_saver.h" #include "core/io/resource_loader.h" #include "servers/physics_2d_server.h" #include "scene/resources/packed_scene.h" #include "editor_settings.h" -#include "io_plugins/editor_import_collada.h" -#include "io_plugins/editor_scene_importer_fbxconv.h" #include "globals.h" #include <stdio.h> -#include "object_type_db.h" +#include "class_db.h" #include "os/keyboard.h" #include "os/os.h" #include "os/file_access.h" @@ -56,6 +54,8 @@ #include "io/config_file.h" #include "animation_editor.h" #include "io/stream_peer_ssl.h" +#include "main/input_default.h" +#include "os/input.h" // plugins #include "plugins/sprite_frames_editor_plugin.h" #include "plugins/texture_region_editor_plugin.h" @@ -76,7 +76,6 @@ #include "plugins/mesh_instance_editor_plugin.h" #include "plugins/mesh_editor_plugin.h" #include "plugins/theme_editor_plugin.h" - #include "plugins/tile_map_editor_plugin.h" #include "plugins/cube_grid_theme_editor_plugin.h" #include "plugins/shader_editor_plugin.h" @@ -99,27 +98,31 @@ #include "plugins/light_occluder_2d_editor_plugin.h" #include "plugins/color_ramp_editor_plugin.h" #include "plugins/collision_shape_2d_editor_plugin.h" -#include "main/input_default.h" +#include "plugins/gi_probe_editor_plugin.h" + // end -#include "tools/editor/editor_settings.h" -#include "tools/editor/io_plugins/editor_texture_import_plugin.h" -#include "tools/editor/io_plugins/editor_scene_import_plugin.h" -#include "tools/editor/io_plugins/editor_font_import_plugin.h" -#include "tools/editor/io_plugins/editor_sample_import_plugin.h" -#include "tools/editor/io_plugins/editor_translation_import_plugin.h" -#include "tools/editor/io_plugins/editor_bitmask_import_plugin.h" -#include "tools/editor/io_plugins/editor_mesh_import_plugin.h" -#include "tools/editor/io_plugins/editor_export_scene.h" +#include "editor_settings.h" +#include "io_plugins/editor_texture_import_plugin.h" +#include "io_plugins/editor_scene_import_plugin.h" +#include "io_plugins/editor_font_import_plugin.h" +#include "io_plugins/editor_sample_import_plugin.h" +#include "io_plugins/editor_translation_import_plugin.h" +#include "io_plugins/editor_bitmask_import_plugin.h" +#include "io_plugins/editor_mesh_import_plugin.h" +#include "io_plugins/editor_export_scene.h" +#include "io_plugins/editor_import_collada.h" +#include "io_plugins/editor_scene_importer_fbxconv.h" #include "plugins/editor_preview_plugins.h" #include "editor_initialize_ssl.h" +#include "editor_audio_buses.h" #include "script_editor_debugger.h" EditorNode *EditorNode::singleton=NULL; void EditorNode::_update_scene_tabs() { - bool show_rb = EditorSettings::get_singleton()->get("global/show_script_in_scene_tabs"); + bool show_rb = EditorSettings::get_singleton()->get("interface/show_script_in_scene_tabs"); scene_tabs->clear_tabs(); Ref<Texture> script_icon = gui_base->get_icon("Script","EditorIcons"); @@ -156,7 +159,7 @@ void EditorNode::_update_scene_tabs() { void EditorNode::_update_title() { - String appname = Globals::get_singleton()->get("application/name"); + String appname = GlobalConfig::get_singleton()->get("application/name"); String title = appname.empty()?String(VERSION_FULL_NAME):String(_MKSTR(VERSION_NAME) + String(" - ") + appname); String edited = editor_data.get_edited_scene_root()?editor_data.get_edited_scene_root()->get_filename():String(); if (!edited.empty()) @@ -187,6 +190,9 @@ void EditorNode::_unhandled_input(const InputEvent& p_event) { next_tab = next_tab >= 0 ? next_tab : editor_data.get_edited_scene_count() - 1; _scene_tab_changed(next_tab); } + if (ED_IS_SHORTCUT("editor/filter_files", p_event)) { + filesystem_dock->focus_on_filter(); + } switch(p_event.key.scancode) { @@ -240,7 +246,7 @@ void EditorNode::_notification(int p_what) { } #endif - if (opening_prev && confirmation->is_hidden()) + if (opening_prev && !confirmation->is_visible()) opening_prev=false; if (unsaved_cache != (saved_version!=editor_data.get_undo_redo().get_version())) { @@ -257,7 +263,7 @@ void EditorNode::_notification(int p_what) { //get_root_node()->set_rect(viewport->get_global_rect()); //update the circle - uint64_t frame = OS::get_singleton()->get_frames_drawn(); + uint64_t frame = Engine::get_singleton()->get_frames_drawn(); uint32_t tick = OS::get_singleton()->get_ticks_msec(); if (frame!=circle_step_frame && (tick-circle_step_msec)>(1000/8)) { @@ -267,35 +273,33 @@ void EditorNode::_notification(int p_what) { circle_step=0; circle_step_msec=tick; - circle_step_frame=frame+1; + circle_step_frame=frame+1; - // update the circle itself only when its enabled - if (!update_menu->get_popup()->is_item_checked(3)){ - update_menu->set_icon(gui_base->get_icon("Progress"+itos(circle_step+1),"EditorIcons")); - } + // update the circle itself only when its enabled + if (!update_menu->get_popup()->is_item_checked(3)){ + update_menu->set_icon(gui_base->get_icon("Progress"+itos(circle_step+1),"EditorIcons")); + } } - scene_root->set_size_override(true,Size2(Globals::get_singleton()->get("display/width"),Globals::get_singleton()->get("display/height"))); - editor_selection->update(); { - uint32_t p32 = AudioServer::get_singleton()->read_output_peak()>>8; + uint32_t p32 = 0;//AudioServer::get_singleton()->read_output_peak()>>8; float peak = p32==0? -80 : Math::linear2db(p32 / 65535.0); if (peak<-80) peak=-80; - float vu = audio_vu->get_val(); + float vu = audio_vu->get_value(); if (peak > vu) { - audio_vu->set_val(peak); + audio_vu->set_value(peak); } else { float new_vu = vu - get_process_delta_time()*70.0; if (new_vu<-80) new_vu=-80; if (new_vu !=-80 && vu !=-80) - audio_vu->set_val(new_vu); + audio_vu->set_value(new_vu); } } @@ -303,7 +307,7 @@ void EditorNode::_notification(int p_what) { } if (p_what==NOTIFICATION_ENTER_TREE) { - + get_tree()->get_root()->set_disable_3d(true); //MessageQueue::get_singleton()->push_call(this,"_get_scene_metadata"); get_tree()->set_editor_hint(true); get_tree()->get_root()->set_as_audio_listener(false); @@ -323,8 +327,8 @@ void EditorNode::_notification(int p_what) { } if (p_what==NOTIFICATION_READY) { - VisualServer::get_singleton()->viewport_set_hide_scenario(get_scene_root()->get_viewport(),true); - VisualServer::get_singleton()->viewport_set_hide_canvas(get_scene_root()->get_viewport(),true); + VisualServer::get_singleton()->viewport_set_hide_scenario(get_scene_root()->get_viewport_rid(),true); + VisualServer::get_singleton()->viewport_set_hide_canvas(get_scene_root()->get_viewport_rid(),true); VisualServer::get_singleton()->viewport_set_disable_environment(get_viewport()->get_viewport_rid(),true); _editor_select(EDITOR_3D); @@ -392,7 +396,7 @@ void EditorNode::_notification(int p_what) { } */ - if (bool(EDITOR_DEF("resources/auto_reload_modified_images",true))) { + if (bool(EDITOR_DEF("filesystem/resources/auto_reload_modified_images",true))) { _menu_option_confirm(DEPENDENCY_LOAD_CHANGED_IMAGES,true); } @@ -408,7 +412,7 @@ void EditorNode::_notification(int p_what) { }; if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { - scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("global/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) ); + scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("interface/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) ); } } @@ -435,7 +439,7 @@ void EditorNode::_fs_changed() { void EditorNode::_sources_changed(bool p_exist) { - if (p_exist && bool(EditorSettings::get_singleton()->get("import/automatic_reimport_on_sources_changed"))) { + if (p_exist && bool(EditorSettings::get_singleton()->get("filesystem/import/automatic_reimport_on_sources_changed"))) { p_exist=false; List<String> changed_sources; @@ -556,12 +560,14 @@ void EditorNode::save_resource_in_path(const Ref<Resource>& p_resource,const Str editor_data.apply_changes_in_editors(); int flg=0; - if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources")) + if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources")) flg|=ResourceSaver::FLAG_COMPRESS; - //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative")) - // flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + /* + if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative")) + flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + */ - String path = Globals::get_singleton()->localize_path(p_path); + String path = GlobalConfig::get_singleton()->localize_path(p_path); Error err = ResourceSaver::save(path,p_resource,flg|ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS); if (err!=OK) { @@ -569,7 +575,7 @@ void EditorNode::save_resource_in_path(const Ref<Resource>& p_resource,const Str accept->popup_centered_minsize(); return; } -// EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type()); + //EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type()); ((Resource*)p_resource.ptr())->set_path(path); emit_signal("resource_saved",p_resource); @@ -598,7 +604,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String& List<String> preferred; for(int i=0;i<extensions.size();i++) { - if (p_resource->is_type("Script") && (extensions[i]=="tres" || extensions[i]=="res" || extensions[i]=="xml")) { + if (p_resource->is_class("Script") && (extensions[i]=="tres" || extensions[i]=="res" || extensions[i]=="xml")) { //this serves no purpose and confused people continue; } @@ -615,7 +621,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String& file->set_current_file(p_resource->get_path().get_file()); } else { if (extensions.size()) { - file->set_current_file("new_"+p_resource->get_type().to_lower()+"."+preferred.front()->get().to_lower()); + file->set_current_file("new_"+p_resource->get_class().to_lower()+"."+preferred.front()->get().to_lower()); } else { file->set_current_file(String()); } @@ -624,7 +630,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String& file->set_current_path(p_resource->get_path()); if (extensions.size()) { - String ext=p_resource->get_path().extension().to_lower(); + String ext=p_resource->get_path().get_extension().to_lower(); if (extensions.find(ext)==NULL) { file->set_current_path(p_resource->get_path().replacen("."+ext,"."+extensions.front()->get())); } @@ -633,7 +639,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String& String existing; if (extensions.size()) { - existing="new_"+p_resource->get_type().to_lower()+"."+preferred.front()->get().to_lower(); + existing="new_"+p_resource->get_class().to_lower()+"."+preferred.front()->get().to_lower(); } file->set_current_path(existing); @@ -667,11 +673,11 @@ void EditorNode::_dialog_display_file_error(String p_file,Error p_error) { case ERR_FILE_CANT_WRITE: { - accept->set_text(TTR("Can't open file for writing:")+" "+p_file.extension()); + accept->set_text(TTR("Can't open file for writing:")+" "+p_file.get_extension()); } break; case ERR_FILE_UNRECOGNIZED: { - accept->set_text(TTR("Requested file format unknown:")+" "+p_file.extension()); + accept->set_text(TTR("Requested file format unknown:")+" "+p_file.get_extension()); } break; default: { @@ -771,7 +777,7 @@ bool EditorNode::_find_and_save_resource(RES res,Map<RES,bool>& processed,int32_ bool subchanged = _find_and_save_edited_subresources(res.ptr(),processed,flags); -// print_line("checking if edited: "+res->get_type()+" :: "+res->get_name()+" :: "+res->get_path()+" :: "+itos(changed)+" :: SR "+itos(subchanged)); + //print_line("checking if edited: "+res->get_type()+" :: "+res->get_name()+" :: "+res->get_path()+" :: "+itos(changed)+" :: SR "+itos(subchanged)); if (res->get_path().is_resource_file()) { if (changed || subchanged) { @@ -829,7 +835,7 @@ bool EditorNode::_find_and_save_edited_subresources(Object *obj,Map<RES,bool>& p case Variant::DICTIONARY: { - Dictionary d=obj->get(E->get().name);; + Dictionary d=obj->get(E->get().name); List<Variant> keys; d.get_key_list(&keys); for(List<Variant>::Element *E=keys.front();E;E=E->next()) { @@ -865,12 +871,12 @@ void EditorNode::_save_edited_subresources(Node* scene,Map<RES,bool>& processed, void EditorNode::_find_node_types(Node* p_node, int&count_2d, int&count_3d) { - if (p_node->is_type("Viewport") || (p_node!=editor_data.get_edited_scene_root() && p_node->get_owner()!=editor_data.get_edited_scene_root())) + if (p_node->is_class("Viewport") || (p_node!=editor_data.get_edited_scene_root() && p_node->get_owner()!=editor_data.get_edited_scene_root())) return; - if (p_node->is_type("CanvasItem")) + if (p_node->is_class("CanvasItem")) count_2d++; - else if (p_node->is_type("Spatial")) + else if (p_node->is_class("Spatial")) count_3d++; for(int i=0;i<p_node->get_child_count();i++) @@ -891,10 +897,10 @@ void EditorNode::_save_scene_with_preview(String p_file) { RID viewport; bool is2d; if (c3d<c2d) { - viewport=scene_root->get_viewport(); + viewport=scene_root->get_viewport_rid(); is2d=true; } else { - viewport=SpatialEditor::get_singleton()->get_editor_viewport(0)->get_viewport_node()->get_viewport(); + viewport=SpatialEditor::get_singleton()->get_editor_viewport(0)->get_viewport_node()->get_viewport_rid(); is2d=false; } @@ -910,11 +916,12 @@ void EditorNode::_save_scene_with_preview(String p_file) { _editor_select(is2d?EDITOR_2D:EDITOR_3D); - VS::get_singleton()->viewport_queue_screen_capture(viewport); + save.step(TTR("Creating Thumbnail"),2); save.step(TTR("Creating Thumbnail"),3); - Image img = VS::get_singleton()->viewport_get_screen_capture(viewport); - int preview_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");; +#if 0 + Image img = VS::get_singleton()->viewport_texture(scree_capture(viewport); + int preview_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); preview_size*=EDSCALE; int width,height; if (img.get_width() > preview_size && img.get_width() >= img.get_height()) { @@ -931,7 +938,7 @@ void EditorNode::_save_scene_with_preview(String p_file) { height=img.get_height(); } - img.convert(Image::FORMAT_RGB); + img.convert(Image::FORMAT_RGB8); img.resize(width,height); String pfile = EditorSettings::get_singleton()->get_settings_path().plus_file("tmp/last_scene_preview.png"); @@ -943,7 +950,7 @@ void EditorNode::_save_scene_with_preview(String p_file) { if (editor_data.get_edited_scene_import_metadata().is_null()) editor_data.set_edited_scene_import_metadata(Ref<ResourceImportMetadata>( memnew( ResourceImportMetadata ) ) ); editor_data.get_edited_scene_import_metadata()->set_option("thumbnail",imgdata); - +#endif //tamanio tel thumbnail if (screen!=-1) { _editor_select(screen); @@ -1003,10 +1010,12 @@ void EditorNode::_save_scene(String p_file, int idx) { sdata->set_import_metadata(editor_data.get_edited_scene_import_metadata(idx)); int flg=0; - if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources")) + if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources")) flg|=ResourceSaver::FLAG_COMPRESS; - //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative")) - // flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + /* + if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative")) + flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + */ flg|=ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS; @@ -1015,7 +1024,7 @@ void EditorNode::_save_scene(String p_file, int idx) { _save_edited_subresources(scene,processed,flg); editor_data.save_editor_external_data(); if (err==OK) { - scene->set_filename( Globals::get_singleton()->localize_path(p_file) ); + scene->set_filename( GlobalConfig::get_singleton()->localize_path(p_file) ); //EditorFileSystem::get_singleton()->update_file(p_file,sdata->get_type()); if (idx < 0 || idx == editor_data.get_edited_scene()) set_current_version(editor_data.get_undo_redo().get_version()); @@ -1051,7 +1060,7 @@ void EditorNode::_import_action(const String& p_action) { //accept->get_cancel()->hide(); accept->get_ok()->set_text("Ugh"); accept->set_text("Error importing scene."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); return; } @@ -1059,7 +1068,7 @@ void EditorNode::_import_action(const String& p_action) { EditorImport::generate_version_hashes(src); - Node *dst = SceneLoader::load(editor_data.get_imported_scene(Globals::get_singleton()->localize_path(_tmp_import_path))); + Node *dst = SceneLoader::load(editor_data.get_imported_scene(GlobalConfig::get_singleton()->localize_path(_tmp_import_path))); if (!dst) { @@ -1067,7 +1076,7 @@ void EditorNode::_import_action(const String& p_action) { //accept->get_cancel()->hide(); accept->get_ok()->set_text("Ugh"); accept->set_text("Error load scene to update."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); return; } @@ -1108,7 +1117,7 @@ void EditorNode::_import(const String &p_file) { //accept->get_cancel()->hide(); accept->get_ok()->set_text("Ugh"); accept->set_text("Error importing scene."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); return; } @@ -1167,9 +1176,8 @@ void EditorNode::_dialog_action(String p_file) { } break; case SETTINGS_PICK_MAIN_SCENE: { - Globals::get_singleton()->set("application/main_scene",p_file); - Globals::get_singleton()->set_persisting("application/main_scene",true); - Globals::get_singleton()->save(); + GlobalConfig::get_singleton()->set("application/main_scene",p_file); + GlobalConfig::get_singleton()->save(); //would be nice to show the project manager opened with the hilighted field.. } break; case FILE_SAVE_OPTIMIZED: { @@ -1246,7 +1254,7 @@ void EditorNode::_dialog_action(String p_file) { ml = Ref<MeshLibrary>( memnew( MeshLibrary )); } - MeshLibraryEditor::update_library_file(editor_data.get_edited_scene_root(),ml,true); + //MeshLibraryEditor::update_library_file(editor_data.get_edited_scene_root(),ml,true); Error err = ResourceSaver::save(p_file,ml); if (err) { @@ -1345,9 +1353,11 @@ void EditorNode::_dialog_action(String p_file) { unzCloseCurrentFile(pkg); print_line(fname); - //for(int i=0;i<512;i++) { - // print_line(itos(data[i])); - //} + /* + for(int i=0;i<512;i++) { + print_line(itos(data[i])); + } + */ file=file.get_file(); @@ -1511,8 +1521,8 @@ void EditorNode::_prepare_history() { already.insert(id); Ref<Texture> icon = gui_base->get_icon("Object","EditorIcons"); - if (gui_base->has_icon(obj->get_type(),"EditorIcons")) - icon=gui_base->get_icon(obj->get_type(),"EditorIcons"); + if (gui_base->has_icon(obj->get_class(),"EditorIcons")) + icon=gui_base->get_icon(obj->get_class(),"EditorIcons"); else icon=base_icon; @@ -1524,12 +1534,12 @@ void EditorNode::_prepare_history() { else if (r->get_name()!=String()) { text=r->get_name(); } else { - text=r->get_type(); + text=r->get_class(); } } else if (obj->cast_to<Node>()) { text=obj->cast_to<Node>()->get_name(); } else { - text=obj->get_type(); + text=obj->get_class(); } if (i==editor_history.get_history_pos()) { @@ -1617,8 +1627,8 @@ void EditorNode::_edit_current() { object_menu->set_disabled(true); - bool is_resource = current_obj->is_type("Resource"); - bool is_node = current_obj->is_type("Node"); + bool is_resource = current_obj->is_class("Resource"); + bool is_node = current_obj->is_class("Node"); resource_save_button->set_disabled(!is_resource); if (is_resource) { @@ -1668,11 +1678,11 @@ void EditorNode::_edit_current() { if (main_plugin) { // special case if use of external editor is true - if (main_plugin->get_name() == "Script" && bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor"))){ + if (main_plugin->get_name() == "Script" && bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))){ main_plugin->edit(current_obj); } - else if (main_plugin!=editor_plugin_screen && (!ScriptEditor::get_singleton() || !ScriptEditor::get_singleton()->is_visible() || ScriptEditor::get_singleton()->can_take_away_focus())) { + else if (main_plugin!=editor_plugin_screen && (!ScriptEditor::get_singleton() || !ScriptEditor::get_singleton()->is_visible_in_tree() || ScriptEditor::get_singleton()->can_take_away_focus())) { // update screen main_plugin if (!changing_scene) { @@ -1848,7 +1858,6 @@ void EditorNode::_run(bool p_current,const String& p_custom) { run_filename=scene->get_filename(); } else { - args=run_settings_dialog->get_custom_arguments(); current_filename=scene->get_filename(); } @@ -1893,7 +1902,7 @@ void EditorNode::_run(bool p_current,const String& p_custom) { } - if (bool(EDITOR_DEF("run/auto_save_before_running",true))) { + if (bool(EDITOR_DEF("run/auto_save/save_before_running",true))) { if (unsaved_cache) { @@ -1923,10 +1932,15 @@ void EditorNode::_run(bool p_current,const String& p_custom) { log->clear(); } + if (bool(EDITOR_DEF("run/always_open_output_on_play", true))) { + make_bottom_panel_item_visible(log); + } List<String> breakpoints; editor_data.get_editor_breakpoints(&breakpoints); + args = GlobalConfig::get_singleton()->get("editor/main_run_args"); + Error error = editor_run.run(run_filename,args,breakpoints,current_filename); if (error!=OK) { @@ -2065,14 +2079,6 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { quick_open->set_title(TTR("Quick Open Script..")); } break; - case FILE_QUICK_OPEN_FILE: { - - - //quick_open->popup("Resource", false, true); - //quick_open->set_title("Quick Search File.."); - scenes_dock->focus_on_filter(); - - } break; case FILE_RUN_SCRIPT: { file_script->popup_centered_ratio(); @@ -2151,7 +2157,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { if (scene->get_filename()!="") { file->set_current_path(scene->get_filename()); if (extensions.size()) { - String ext=scene->get_filename().extension().to_lower(); + String ext=scene->get_filename().get_extension().to_lower(); if (extensions.find(ext)==NULL) { file->set_current_path(scene->get_filename().replacen("."+ext,"."+extensions.front()->get())); } @@ -2214,8 +2220,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { if (scene->get_filename()!="") { cpath = scene->get_filename(); - String fn = cpath.substr(0,cpath.length() - cpath.extension().size()); - String ext=cpath.extension(); + String fn = cpath.substr(0,cpath.length() - cpath.get_extension().size()); + String ext=cpath.get_extension(); cpath=fn+".pot"; @@ -2245,7 +2251,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { //confirmation->get_cancel()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("This operation can't be done without a tree root."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); break; } @@ -2267,7 +2273,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { //confirmation->get_cancel()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("Please save the scene first."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); break; } @@ -2282,7 +2288,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { Ref<EditorExporter> exporter = export_db->get_exporter(target); if (exporter.is_null()) { accept->set_text("No exporter for platform '"+target+"' yet."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); return; } @@ -2399,8 +2405,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { case EDIT_UNDO: { - if (OS::get_singleton()->get_mouse_button_state()) + + + if (Input::get_singleton()->get_mouse_button_mask()&0x7) { + print_line("no because state"); break; // can't undo while mouse buttons are pressed + } String action = editor_data.get_undo_redo().get_current_action_name(); if (action!="") @@ -2410,7 +2420,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { } break; case EDIT_REDO: { - if (OS::get_singleton()->get_mouse_button_state()) + if (Input::get_singleton()->get_mouse_button_mask()&0x7) break; // can't redo while mouse buttons are pressed editor_data.get_undo_redo().redo(); @@ -2465,7 +2475,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { //accept->get_cancel()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("This operation can't be done without a selected node."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); break; } @@ -2477,7 +2487,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { //confirmation->get_cancel()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("This operation can't be done without a selected node."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); break; } @@ -2489,12 +2499,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { //accept->get_cancel()->hide(); accept->get_ok()->set_text("Ugh"); accept->set_text("Error loading scene from "+external_file); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); return; } instanced_scene->generate_instance_state(); - instanced_scene->set_filename( Globals::get_singleton()->localize_path(external_file) ); + instanced_scene->set_filename( GlobalConfig::get_singleton()->localize_path(external_file) ); editor_data.get_undo_redo().create_action("Instance Scene"); editor_data.get_undo_redo().add_do_method(parent,"add_child",instanced_scene); @@ -2503,8 +2513,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { editor_data.get_undo_redo().add_undo_method(parent,"remove_child",instanced_scene); editor_data.get_undo_redo().commit_action(); -// parent->add_child(instanced_scene); -// instanced_scene->set_owner(edited_scene); + //parent->add_child(instanced_scene); + //instanced_scene->set_owner(edited_scene); _last_instanced_scene=instanced_scene; } break; @@ -2577,27 +2587,27 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { if (current) { _editor_select(EDITOR_SCRIPT); - emit_signal("request_help",current->get_type()); + emit_signal("request_help",current->get_class()); } } break; case OBJECT_COPY_PARAMS: { - editor_data.apply_changes_in_editors();; + editor_data.apply_changes_in_editors(); if (current) editor_data.copy_object_params(current); } break; case OBJECT_PASTE_PARAMS: { - editor_data.apply_changes_in_editors();; + editor_data.apply_changes_in_editors(); if (current) editor_data.paste_object_params(current); editor_data.get_undo_redo().clear_history(); } break; case OBJECT_UNIQUE_RESOURCES: { - editor_data.apply_changes_in_editors();; + editor_data.apply_changes_in_editors(); if (current) { List<PropertyInfo> props; current->get_property_list(&props); @@ -2635,12 +2645,6 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { _set_editing_top_editors(current); } break; - case OBJECT_CALL_METHOD: { - - editor_data.apply_changes_in_editors();; - call_dialog->set_object(current); - call_dialog->popup_centered_ratio(); - } break; case RUN_PLAY: { _menu_option_confirm(RUN_STOP,true); _call_build(); @@ -2685,7 +2689,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { } break; case RUN_PLAY_NATIVE: { - bool autosave = EDITOR_DEF("run/auto_save_before_running",true); + bool autosave = EDITOR_DEF("run/auto_save/save_before_running",true); if (autosave) { _menu_option_confirm(FILE_SAVE_ALL_SCENES, false); } @@ -2803,10 +2807,10 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { update_menu->get_popup()->set_item_checked(1,true); OS::get_singleton()->set_low_processor_usage_mode(true); } break; - case SETTINGS_UPDATE_SPINNER_HIDE: { + case SETTINGS_UPDATE_SPINNER_HIDE: { update_menu->set_icon(gui_base->get_icon("Collapse","EditorIcons")); - update_menu->get_popup()->toggle_item_checked(3); - } break; + update_menu->get_popup()->toggle_item_checked(3); + } break; case SETTINGS_PREFERENCES: { settings_config_dialog->popup_edit_settings(); @@ -2911,7 +2915,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { //accept->get_cancel()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("Can't import if edited scene was not saved."); //i dont think this code will ever run - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); break; } @@ -3078,11 +3082,9 @@ void EditorNode::_update_addon_config() { } if (enabled_addons.size()==0) { - Globals::get_singleton()->set("editor_plugins/enabled",Variant()); - Globals::get_singleton()->set_persisting("editor_plugins/enabled",false); + GlobalConfig::get_singleton()->set("editor_plugins/enabled",Variant()); } else { - Globals::get_singleton()->set("editor_plugins/enabled",enabled_addons); - Globals::get_singleton()->set_persisting("editor_plugins/enabled",true); + GlobalConfig::get_singleton()->set("editor_plugins/enabled",enabled_addons); } project_settings->queue_save(); @@ -3181,15 +3183,17 @@ void EditorNode::_remove_edited_scene() { _update_title(); _update_scene_tabs(); -// if (editor_data.get_edited_scene_count()==1) { -// //make new scene appear saved -// set_current_version(editor_data.get_undo_redo().get_version()); -// unsaved_cache=false; -// } + /* + if (editor_data.get_edited_scene_count()==1) { + //make new scene appear saved + set_current_version(editor_data.get_undo_redo().get_version()); + unsaved_cache=false; + } + */ } void EditorNode::_remove_scene(int index) { -// printf("Attempting to remove scene %d (current is %d)\n", index, editor_data.get_edited_scene()); + //printf("Attempting to remove scene %d (current is %d)\n", index, editor_data.get_edited_scene()); if (editor_data.get_edited_scene() == index) { //Scene to remove is current scene @@ -3275,7 +3279,7 @@ Error EditorNode::save_translatable_strings(const String& p_to_file) { OS::Time time = OS::get_singleton()->get_time(); f->store_line("# Translation Strings Dump."); f->store_line("# Created By."); - f->store_line("# \t" VERSION_FULL_NAME " (c) 2008-2016 Juan Linietsky, Ariel Manzur."); + f->store_line("# \t" VERSION_FULL_NAME " (c) 2008-2017 Juan Linietsky, Ariel Manzur."); f->store_line("# From Scene: "); f->store_line("# \t"+get_edited_scene()->get_filename()); f->store_line(""); @@ -3283,8 +3287,8 @@ Error EditorNode::save_translatable_strings(const String& p_to_file) { f->store_line("msgstr \"\""); f->store_line("\"Report-Msgid-Bugs-To: <define>\\n\""); f->store_line("\"POT-Creation-Date: "+itos(date.year)+"-"+itos(date.month)+"-"+itos(date.day)+" "+itos(time.hour)+":"+itos(time.min)+"0000\\n\""); -// f->store_line("\"PO-Revision-Date: 2006-08-30 13:56-0700\\n\""); -// f->store_line("\"Last-Translator: Rubén C. Díaz Alonso <outime@gmail.com>\\n\""); + //f->store_line("\"PO-Revision-Date: 2006-08-30 13:56-0700\\n\""); + //f->store_line("\"Last-Translator: Rubén C. Díaz Alonso <outime@gmail.com>\\n\""); f->store_line("\"Language-Team: <define>\\n\""); f->store_line("\"MIME-Version: 1.0\\n\""); f->store_line("\"Content-Type: text/plain; charset=UTF-8\\n\""); @@ -3347,7 +3351,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres } - String src_scene=Globals::get_singleton()->localize_path(get_edited_scene()->get_filename()); + String src_scene=GlobalConfig::get_singleton()->localize_path(get_edited_scene()->get_filename()); String path=p_scene; @@ -3358,24 +3362,24 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres print_line("rel path!?"); path=src_scene.get_base_dir()+"/"+path; } - path = Globals::get_singleton()->localize_path(path); + path = GlobalConfig::get_singleton()->localize_path(path); print_line("path: "+path); String preset = "optimizer_presets/"+p_preset; - if (!Globals::get_singleton()->has(preset)) { + if (!GlobalConfig::get_singleton()->has(preset)) { //accept->"()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("Optimizer preset not found: "+p_preset); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); ERR_EXPLAIN("Optimizer preset not found: "+p_preset); ERR_FAIL_V(ERR_INVALID_PARAMETER); } - Dictionary d = Globals::get_singleton()->get(preset); + Dictionary d = GlobalConfig::get_singleton()->get(preset); ERR_FAIL_COND_V(!d.has("__type__"),ERR_INVALID_DATA); String type=d["__type__"]; @@ -3405,8 +3409,10 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres uint32_t flags=0; -// if (saver->is_bundle_scenes_enabled()) -// flags|=ResourceSaver::FLAG_BUNDLE_INSTANCED_SCENES; + /* + if (saver->is_bundle_scenes_enabled()) + flags|=ResourceSaver::FLAG_BUNDLE_INSTANCED_SCENES; + */ if (saver->is_bundle_resources_enabled()) flags|=ResourceSaver::FLAG_BUNDLE_RESOURCES; if (saver->is_remove_editor_data_enabled()) @@ -3427,7 +3433,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres //accept->get_cancel()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); return ERR_INVALID_DATA; } @@ -3438,7 +3444,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres //accept->"()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("Error saving optimized scene: "+path); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); ERR_FAIL_COND_V(err,err); @@ -3464,8 +3470,8 @@ Dictionary EditorNode::_get_main_scene_state() { Dictionary state; state["main_tab"]=_get_current_main_editor(); - state["scene_tree_offset"]=scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->get_val(); - state["property_edit_offset"]=get_property_editor()->get_scene_tree()->get_vscroll_bar()->get_val(); + state["scene_tree_offset"]=scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->get_value(); + state["property_edit_offset"]=get_property_editor()->get_scene_tree()->get_vscroll_bar()->get_value(); state["saved_version"]=saved_version; state["node_filter"]=scene_tree_dock->get_filter(); //print_line(" getting main tab: "+itos(state["main_tab"])); @@ -3531,9 +3537,9 @@ void EditorNode::_set_main_scene_state(Dictionary p_state,Node* p_for_scene) { if (p_state.has("scene_tree_offset")) - scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->set_val(p_state["scene_tree_offset"]); + scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->set_value(p_state["scene_tree_offset"]); if (p_state.has("property_edit_offset")) - get_property_editor()->get_scene_tree()->get_vscroll_bar()->set_val(p_state["property_edit_offset"]); + get_property_editor()->get_scene_tree()->get_vscroll_bar()->set_value(p_state["property_edit_offset"]); if (p_state.has("node_filter")) scene_tree_dock->set_filter(p_state["node_filter"]); @@ -3661,7 +3667,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo if (p_clear_errors) load_errors->clear(); - String lpath = Globals::get_singleton()->localize_path(p_scene); + String lpath = GlobalConfig::get_singleton()->localize_path(p_scene); if (!lpath.begins_with("res://")) { @@ -3750,7 +3756,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo sdata->set_path(lpath,true); //take over path } - Node*new_scene=sdata->instance(true); + Node*new_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_MAIN); if (!new_scene) { @@ -3789,8 +3795,10 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo state->set_path(lpath); new_scene->set_scene_inherited_state(state); new_scene->set_filename(String()); - //if (new_scene->get_scene_instance_state().is_valid()) - // new_scene->get_scene_instance_state()->set_path(String()); + /* + if (new_scene->get_scene_instance_state().is_valid()) + new_scene->get_scene_instance_state()->set_path(String()); + */ } new_scene->set_scene_instance_state(Ref<SceneState>()); @@ -3806,7 +3814,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo */ editor_data.set_edited_scene_import_metadata( sdata->get_import_metadata() ); -// editor_data.get_undo_redo().clear_history(); + //editor_data.get_undo_redo().clear_history(); saved_version=editor_data.get_undo_redo().get_version(); _update_title(); _update_scene_tabs(); @@ -3844,9 +3852,9 @@ void EditorNode::request_instance_scenes(const Vector<String>& p_files) { scene_tree_dock->instance_scenes(p_files); } -FileSystemDock *EditorNode::get_scenes_dock() { +FileSystemDock *EditorNode::get_filesystem_dock() { - return scenes_dock; + return filesystem_dock; } SceneTreeDock *EditorNode::get_scene_tree_dock() { @@ -3898,17 +3906,17 @@ void EditorNode::update_keying() { void EditorNode::_close_messages() { -// left_split->set_dragger_visible(false); + //left_split->set_dragger_visible(false); old_split_ofs = center_split->get_split_offset(); center_split->set_split_offset(0); -// scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,0); + //scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,0); } void EditorNode::_show_messages() { -// left_split->set_dragger_visible(true); + //left_split->set_dragger_visible(true); center_split->set_split_offset(old_split_ofs); -// scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,log->get_margin(MARGIN_TOP)); + //scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,log->get_margin(MARGIN_TOP)); } @@ -3939,7 +3947,7 @@ void EditorNode::animation_editor_make_visible(bool p_visible) { } else { //pd_anim->hide(); animation_editor->hide(); -// scene_root_parent->set_margin(MARGIN_TOP,0); + //scene_root_parent->set_margin(MARGIN_TOP,0); if (!animation_vb->get_parent_control()) return; animation_vb->get_parent_control()->minimum_size_changed(); @@ -3952,7 +3960,7 @@ void EditorNode::animation_editor_make_visible(bool p_visible) { #endif void EditorNode::_add_to_recent_scenes(const String& p_scene) { - String base="_"+Globals::get_singleton()->get_resource_path().replace("\\","::").replace("/","::"); + String base="_"+GlobalConfig::get_singleton()->get_resource_path().replace("\\","::").replace("/","::"); Vector<String> rc = EDITOR_DEF(base+"/_recent_scenes",Array()); String name = p_scene; name=name.replace("res://",""); @@ -3970,7 +3978,7 @@ void EditorNode::_add_to_recent_scenes(const String& p_scene) { void EditorNode::_open_recent_scene(int p_idx) { - String base="_"+Globals::get_singleton()->get_resource_path().replace("\\","::").replace("/","::"); + String base="_"+GlobalConfig::get_singleton()->get_resource_path().replace("\\","::").replace("/","::"); Vector<String> rc = EDITOR_DEF(base+"/_recent_scenes",Array()); ERR_FAIL_INDEX(p_idx,rc.size()); @@ -3994,7 +4002,7 @@ void EditorNode::_open_recent_scene(int p_idx) { void EditorNode::_save_optimized() { -// save_optimized_copy(optimized_save->get_optimized_scene(),optimized_save->get_preset()); + //save_optimized_copy(optimized_save->get_optimized_scene(),optimized_save->get_preset()); #if 0 String path = optimized_save->get_optimized_scene(); @@ -4021,18 +4029,18 @@ void EditorNode::_save_optimized() { //accept->"()->hide(); accept->get_ok()->set_text("I see.."); accept->set_text("Error saving optimized scene: "+path); - accept->popup_centered(Size2(300,70));; + accept->popup_centered(Size2(300,70)); return; } - project_settings->add_remapped_path(Globals::get_singleton()->localize_path(get_edited_scene()->get_filename()),Globals::get_singleton()->localize_path(path),platform); + project_settings->add_remapped_path(GlobalConfig::get_singleton()->localize_path(get_edited_scene()->get_filename()),GlobalConfig::get_singleton()->localize_path(path),platform); #endif } void EditorNode::_update_recent_scenes() { - String base="_"+Globals::get_singleton()->get_resource_path().replace("\\","::").replace("/","::"); + String base="_"+GlobalConfig::get_singleton()->get_resource_path().replace("\\","::").replace("/","::"); Vector<String> rc = EDITOR_DEF(base+"/_recent_scenes",Array()); recent_scenes->clear(); for(int i=0;i<rc.size();i++) { @@ -4146,25 +4154,25 @@ bool EditorNode::is_scene_in_use(const String& p_path) { void EditorNode::register_editor_types() { - ObjectTypeDB::register_type<EditorPlugin>(); - ObjectTypeDB::register_type<EditorImportPlugin>(); - ObjectTypeDB::register_type<EditorExportPlugin>(); - ObjectTypeDB::register_type<EditorScenePostImport>(); - ObjectTypeDB::register_type<EditorScript>(); - ObjectTypeDB::register_type<EditorSelection>(); - ObjectTypeDB::register_type<EditorFileDialog>(); - //ObjectTypeDB::register_type<EditorImportExport>(); - ObjectTypeDB::register_type<EditorSettings>(); - ObjectTypeDB::register_type<EditorSpatialGizmo>(); - ObjectTypeDB::register_type<EditorResourcePreview>(); - ObjectTypeDB::register_type<EditorResourcePreviewGenerator>(); - ObjectTypeDB::register_type<EditorFileSystem>(); - ObjectTypeDB::register_type<EditorFileSystemDirectory>(); + ClassDB::register_class<EditorPlugin>(); + ClassDB::register_class<EditorImportPlugin>(); + ClassDB::register_class<EditorExportPlugin>(); + ClassDB::register_class<EditorScenePostImport>(); + ClassDB::register_class<EditorScript>(); + ClassDB::register_class<EditorSelection>(); + ClassDB::register_class<EditorFileDialog>(); + //ClassDB::register_type<EditorImportExport>(); + ClassDB::register_class<EditorSettings>(); + ClassDB::register_class<EditorSpatialGizmo>(); + ClassDB::register_class<EditorResourcePreview>(); + ClassDB::register_class<EditorResourcePreviewGenerator>(); + ClassDB::register_class<EditorFileSystem>(); + ClassDB::register_class<EditorFileSystemDirectory>(); - //ObjectTypeDB::register_type<EditorImporter>(); -// ObjectTypeDB::register_type<EditorPostImport>(); + //ClassDB::register_type<EditorImporter>(); + //ClassDB::register_type<EditorPostImport>(); } void EditorNode::unregister_editor_types() { @@ -4222,7 +4230,7 @@ void EditorNode::progress_end_task_bg(const String& p_task) { Ref<Texture> EditorNode::_file_dialog_get_icon(const String& p_path) { - EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->get_path(p_path.get_base_dir()); + EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->get_filesystem_path(p_path.get_base_dir()); if (efsd) { String file = p_path.get_file(); @@ -4506,6 +4514,8 @@ void EditorNode::_save_docks_to_config(Ref<ConfigFile> p_layout, const String& p } } + p_layout->set_value(p_section,"dock_filesystem_split",filesystem_dock->get_split_offset()); + VSplitContainer*splits[DOCK_SLOT_MAX/2]={ left_l_vsplit, left_r_vsplit, @@ -4515,7 +4525,7 @@ void EditorNode::_save_docks_to_config(Ref<ConfigFile> p_layout, const String& p for(int i=0;i<DOCK_SLOT_MAX/2;i++) { - if (splits[i]->is_visible()) { + if (splits[i]->is_visible_in_tree()) { p_layout->set_value(p_section,"dock_split_"+itos(i+1),splits[i]->get_split_offset()); } } @@ -4614,7 +4624,7 @@ void EditorNode::_update_dock_slots_visibility() { for(int i=0;i<DOCK_SLOT_MAX;i++) { - if (!dock_slot[i]->is_hidden() && dock_slot[i]->get_tab_count()) { + if (dock_slot[i]->is_visible() && dock_slot[i]->get_tab_count()) { dock_slot[i]->set_current_tab(0); } } @@ -4682,6 +4692,12 @@ void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String& } } + int fs_split_ofs = 0; + if (p_layout->has_section_key(p_section,"dock_filesystem_split")) { + fs_split_ofs = p_layout->get_value(p_section,"dock_filesystem_split"); + } + filesystem_dock->set_split_offset(fs_split_ofs); + VSplitContainer*splits[DOCK_SLOT_MAX/2]={ left_l_vsplit, left_r_vsplit, @@ -4722,7 +4738,7 @@ void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String& for(int i=0;i<DOCK_SLOT_MAX;i++) { - if (!dock_slot[i]->is_hidden() && dock_slot[i]->get_tab_count()) { + if (dock_slot[i]->is_visible() && dock_slot[i]->get_tab_count()) { dock_slot[i]->set_current_tab(0); } } @@ -4960,7 +4976,7 @@ void EditorNode::remove_bottom_panel_item(Control *p_item) { for(int i=0;i<bottom_panel_items.size();i++) { if (bottom_panel_items[i].control==p_item) { - if (p_item->is_visible()) { + if (p_item->is_visible_in_tree()) { _bottom_panel_switch(false,0); } bottom_panel_vb->remove_child(bottom_panel_items[i].control); @@ -4987,7 +5003,7 @@ void EditorNode::_bottom_panel_switch(bool p_enable,int p_idx) { for(int i=0;i<bottom_panel_items.size();i++) { bottom_panel_items[i].button->set_pressed(i==p_idx); - bottom_panel_items[i].control->set_hidden(i!=p_idx); + bottom_panel_items[i].control->set_visible(i==p_idx); } center_split->set_dragger_visibility(SplitContainer::DRAGGER_VISIBLE); center_split->set_collapsed(false); @@ -4995,7 +5011,7 @@ void EditorNode::_bottom_panel_switch(bool p_enable,int p_idx) { for(int i=0;i<bottom_panel_items.size();i++) { bottom_panel_items[i].button->set_pressed(false); - bottom_panel_items[i].control->set_hidden(true); + bottom_panel_items[i].control->set_visible(false); } center_split->set_dragger_visibility(SplitContainer::DRAGGER_HIDDEN); center_split->set_collapsed(true); @@ -5062,7 +5078,7 @@ Variant EditorNode::drag_resource(const Ref<Resource>& p_res,Control* p_from) { Control *drag_control = memnew( Control ); - TextureFrame *drag_preview = memnew( TextureFrame ); + TextureRect *drag_preview = memnew( TextureRect ); Label* label=memnew( Label ); waiting_for_sources_changed=true; // @@ -5085,7 +5101,7 @@ Variant EditorNode::drag_resource(const Ref<Resource>& p_res,Control* p_from) { } else if (p_res->get_name()!="") { label->set_text(p_res->get_name()); } else { - label->set_text(p_res->get_type()); + label->set_text(p_res->get_class()); } @@ -5170,7 +5186,7 @@ Variant EditorNode::drag_files_and_dirs(const Vector<String>& p_files, Control * void EditorNode::_dropped_files(const Vector<String>& p_files,int p_screen) { - String cur_path = scenes_dock->get_current_path(); + String cur_path = filesystem_dock->get_current_path(); for(int i=0;i<EditorImportExport::get_singleton()->get_import_plugin_count();i++) { EditorImportExport::get_singleton()->get_import_plugin(i)->import_from_drop(p_files,cur_path); } @@ -5284,94 +5300,103 @@ void EditorNode::_call_build() { void EditorNode::_bind_methods() { - ObjectTypeDB::bind_method("_menu_option",&EditorNode::_menu_option); - ObjectTypeDB::bind_method("_menu_confirm_current",&EditorNode::_menu_confirm_current); - ObjectTypeDB::bind_method("_dialog_action",&EditorNode::_dialog_action); - ObjectTypeDB::bind_method("_resource_selected",&EditorNode::_resource_selected,DEFVAL("")); - ObjectTypeDB::bind_method("_property_editor_forward",&EditorNode::_property_editor_forward); - ObjectTypeDB::bind_method("_property_editor_back",&EditorNode::_property_editor_back); - ObjectTypeDB::bind_method("_editor_select",&EditorNode::_editor_select); - ObjectTypeDB::bind_method("_node_renamed",&EditorNode::_node_renamed); - ObjectTypeDB::bind_method("edit_node",&EditorNode::edit_node); - ObjectTypeDB::bind_method("_imported",&EditorNode::_imported); - ObjectTypeDB::bind_method("_unhandled_input",&EditorNode::_unhandled_input); - - ObjectTypeDB::bind_method("_get_scene_metadata",&EditorNode::_get_scene_metadata); - ObjectTypeDB::bind_method("set_edited_scene",&EditorNode::set_edited_scene); - ObjectTypeDB::bind_method("open_request",&EditorNode::open_request); - ObjectTypeDB::bind_method("_instance_request",&EditorNode::_instance_request); - ObjectTypeDB::bind_method("update_keying",&EditorNode::update_keying); - ObjectTypeDB::bind_method("_property_keyed",&EditorNode::_property_keyed); - ObjectTypeDB::bind_method("_transform_keyed",&EditorNode::_transform_keyed); - ObjectTypeDB::bind_method("_close_messages",&EditorNode::_close_messages); - ObjectTypeDB::bind_method("_show_messages",&EditorNode::_show_messages); - ObjectTypeDB::bind_method("_vp_resized",&EditorNode::_vp_resized); - ObjectTypeDB::bind_method("_quick_opened",&EditorNode::_quick_opened); - ObjectTypeDB::bind_method("_quick_run",&EditorNode::_quick_run); - - ObjectTypeDB::bind_method("_resource_created",&EditorNode::_resource_created); - - ObjectTypeDB::bind_method("_import_action",&EditorNode::_import_action); - //ObjectTypeDB::bind_method("_import",&EditorNode::_import); -// ObjectTypeDB::bind_method("_import_conflicts_solved",&EditorNode::_import_conflicts_solved); - ObjectTypeDB::bind_method("_open_recent_scene",&EditorNode::_open_recent_scene); -// ObjectTypeDB::bind_method("_open_recent_scene_confirm",&EditorNode::_open_recent_scene_confirm); - - ObjectTypeDB::bind_method("_save_optimized",&EditorNode::_save_optimized); - - ObjectTypeDB::bind_method("stop_child_process",&EditorNode::stop_child_process); - - ObjectTypeDB::bind_method("_sources_changed",&EditorNode::_sources_changed); - ObjectTypeDB::bind_method("_fs_changed",&EditorNode::_fs_changed); - ObjectTypeDB::bind_method("_dock_select_draw",&EditorNode::_dock_select_draw); - ObjectTypeDB::bind_method("_dock_select_input",&EditorNode::_dock_select_input); - ObjectTypeDB::bind_method("_dock_pre_popup",&EditorNode::_dock_pre_popup); - ObjectTypeDB::bind_method("_dock_split_dragged",&EditorNode::_dock_split_dragged); - ObjectTypeDB::bind_method("_save_docks",&EditorNode::_save_docks); - ObjectTypeDB::bind_method("_dock_popup_exit",&EditorNode::_dock_popup_exit); - ObjectTypeDB::bind_method("_dock_move_left",&EditorNode::_dock_move_left); - ObjectTypeDB::bind_method("_dock_move_right",&EditorNode::_dock_move_right); - - ObjectTypeDB::bind_method("_layout_menu_option",&EditorNode::_layout_menu_option); - - ObjectTypeDB::bind_method("set_current_scene",&EditorNode::set_current_scene); - ObjectTypeDB::bind_method("set_current_version",&EditorNode::set_current_version); - ObjectTypeDB::bind_method("_scene_tab_changed",&EditorNode::_scene_tab_changed); - ObjectTypeDB::bind_method("_scene_tab_closed",&EditorNode::_scene_tab_closed); - ObjectTypeDB::bind_method("_scene_tab_script_edited",&EditorNode::_scene_tab_script_edited); - ObjectTypeDB::bind_method("_set_main_scene_state",&EditorNode::_set_main_scene_state); - ObjectTypeDB::bind_method("_update_scene_tabs",&EditorNode::_update_scene_tabs); - - ObjectTypeDB::bind_method("_prepare_history",&EditorNode::_prepare_history); - ObjectTypeDB::bind_method("_select_history",&EditorNode::_select_history); - - ObjectTypeDB::bind_method("_toggle_search_bar",&EditorNode::_toggle_search_bar); - ObjectTypeDB::bind_method("_clear_search_box",&EditorNode::_clear_search_box); - ObjectTypeDB::bind_method("_clear_undo_history",&EditorNode::_clear_undo_history); - ObjectTypeDB::bind_method("_dropped_files",&EditorNode::_dropped_files); - ObjectTypeDB::bind_method("_toggle_distraction_free_mode",&EditorNode::_toggle_distraction_free_mode); - - - - ObjectTypeDB::bind_method(_MD("add_editor_import_plugin", "plugin"), &EditorNode::add_editor_import_plugin); - ObjectTypeDB::bind_method(_MD("remove_editor_import_plugin", "plugin"), &EditorNode::remove_editor_import_plugin); - ObjectTypeDB::bind_method(_MD("get_gui_base"), &EditorNode::get_gui_base); - ObjectTypeDB::bind_method(_MD("_bottom_panel_switch"), &EditorNode::_bottom_panel_switch); + ClassDB::bind_method("_menu_option",&EditorNode::_menu_option); + ClassDB::bind_method("_menu_confirm_current",&EditorNode::_menu_confirm_current); + ClassDB::bind_method("_dialog_action",&EditorNode::_dialog_action); + ClassDB::bind_method("_resource_selected",&EditorNode::_resource_selected,DEFVAL("")); + ClassDB::bind_method("_property_editor_forward",&EditorNode::_property_editor_forward); + ClassDB::bind_method("_property_editor_back",&EditorNode::_property_editor_back); + ClassDB::bind_method("_editor_select",&EditorNode::_editor_select); + ClassDB::bind_method("_node_renamed",&EditorNode::_node_renamed); + ClassDB::bind_method("edit_node",&EditorNode::edit_node); + ClassDB::bind_method("_imported",&EditorNode::_imported); + ClassDB::bind_method("_unhandled_input",&EditorNode::_unhandled_input); + + ClassDB::bind_method("_get_scene_metadata",&EditorNode::_get_scene_metadata); + ClassDB::bind_method("set_edited_scene",&EditorNode::set_edited_scene); + ClassDB::bind_method("open_request",&EditorNode::open_request); + ClassDB::bind_method("_instance_request",&EditorNode::_instance_request); + ClassDB::bind_method("update_keying",&EditorNode::update_keying); + ClassDB::bind_method("_property_keyed",&EditorNode::_property_keyed); + ClassDB::bind_method("_transform_keyed",&EditorNode::_transform_keyed); + ClassDB::bind_method("_close_messages",&EditorNode::_close_messages); + ClassDB::bind_method("_show_messages",&EditorNode::_show_messages); + ClassDB::bind_method("_vp_resized",&EditorNode::_vp_resized); + ClassDB::bind_method("_quick_opened",&EditorNode::_quick_opened); + ClassDB::bind_method("_quick_run",&EditorNode::_quick_run); + + ClassDB::bind_method("_resource_created",&EditorNode::_resource_created); + + ClassDB::bind_method("_import_action",&EditorNode::_import_action); + //ClassDB::bind_method("_import",&EditorNode::_import); + //ClassDB::bind_method("_import_conflicts_solved",&EditorNode::_import_conflicts_solved); + ClassDB::bind_method("_open_recent_scene",&EditorNode::_open_recent_scene); + //ClassDB::bind_method("_open_recent_scene_confirm",&EditorNode::_open_recent_scene_confirm); + + ClassDB::bind_method("_save_optimized",&EditorNode::_save_optimized); + + ClassDB::bind_method("stop_child_process",&EditorNode::stop_child_process); + + ClassDB::bind_method("_sources_changed",&EditorNode::_sources_changed); + ClassDB::bind_method("_fs_changed",&EditorNode::_fs_changed); + ClassDB::bind_method("_dock_select_draw",&EditorNode::_dock_select_draw); + ClassDB::bind_method("_dock_select_input",&EditorNode::_dock_select_input); + ClassDB::bind_method("_dock_pre_popup",&EditorNode::_dock_pre_popup); + ClassDB::bind_method("_dock_split_dragged",&EditorNode::_dock_split_dragged); + ClassDB::bind_method("_save_docks",&EditorNode::_save_docks); + ClassDB::bind_method("_dock_popup_exit",&EditorNode::_dock_popup_exit); + ClassDB::bind_method("_dock_move_left",&EditorNode::_dock_move_left); + ClassDB::bind_method("_dock_move_right",&EditorNode::_dock_move_right); + + ClassDB::bind_method("_layout_menu_option",&EditorNode::_layout_menu_option); + + ClassDB::bind_method("set_current_scene",&EditorNode::set_current_scene); + ClassDB::bind_method("set_current_version",&EditorNode::set_current_version); + ClassDB::bind_method("_scene_tab_changed",&EditorNode::_scene_tab_changed); + ClassDB::bind_method("_scene_tab_closed",&EditorNode::_scene_tab_closed); + ClassDB::bind_method("_scene_tab_script_edited",&EditorNode::_scene_tab_script_edited); + ClassDB::bind_method("_set_main_scene_state",&EditorNode::_set_main_scene_state); + ClassDB::bind_method("_update_scene_tabs",&EditorNode::_update_scene_tabs); + + ClassDB::bind_method("_prepare_history",&EditorNode::_prepare_history); + ClassDB::bind_method("_select_history",&EditorNode::_select_history); + + ClassDB::bind_method("_toggle_search_bar",&EditorNode::_toggle_search_bar); + ClassDB::bind_method("_clear_search_box",&EditorNode::_clear_search_box); + ClassDB::bind_method("_clear_undo_history",&EditorNode::_clear_undo_history); + ClassDB::bind_method("_dropped_files",&EditorNode::_dropped_files); + ClassDB::bind_method("_toggle_distraction_free_mode",&EditorNode::_toggle_distraction_free_mode); + + + + ClassDB::bind_method(_MD("add_editor_import_plugin", "plugin"), &EditorNode::add_editor_import_plugin); + ClassDB::bind_method(_MD("remove_editor_import_plugin", "plugin"), &EditorNode::remove_editor_import_plugin); + ClassDB::bind_method(_MD("get_gui_base"), &EditorNode::get_gui_base); + ClassDB::bind_method(_MD("_bottom_panel_switch"), &EditorNode::_bottom_panel_switch); ADD_SIGNAL( MethodInfo("play_pressed") ); ADD_SIGNAL( MethodInfo("pause_pressed") ); ADD_SIGNAL( MethodInfo("stop_pressed") ); ADD_SIGNAL( MethodInfo("request_help") ); - ADD_SIGNAL( MethodInfo("script_add_function_request",PropertyInfo(Variant::OBJECT,"obj"),PropertyInfo(Variant::STRING,"function"),PropertyInfo(Variant::STRING_ARRAY,"args")) ); + ADD_SIGNAL( MethodInfo("script_add_function_request",PropertyInfo(Variant::OBJECT,"obj"),PropertyInfo(Variant::STRING,"function"),PropertyInfo(Variant::POOL_STRING_ARRAY,"args")) ); ADD_SIGNAL( MethodInfo("resource_saved",PropertyInfo(Variant::OBJECT,"obj")) ); } +static Node* _resource_get_edited_scene() { + + return EditorNode::get_singleton()->get_edited_scene(); +} + EditorNode::EditorNode() { + Resource::_get_local_scene_func=_resource_get_edited_scene; + + VisualServer::get_singleton()->textures_keep_original(true); + EditorHelp::generate_doc(); //before any editor classes are crated SceneState::set_disable_placeholders(true); editor_initialize_certificates(); //for asset sharing @@ -5398,7 +5423,7 @@ EditorNode::EditorNode() { FileAccess::set_backup_save(true); - PathRemap::get_singleton()->clear_remaps();; //editor uses no remaps + PathRemap::get_singleton()->clear_remaps(); //editor uses no remaps TranslationServer::get_singleton()->set_enabled(false); // load settings if (!EditorSettings::get_singleton()) @@ -5406,7 +5431,7 @@ EditorNode::EditorNode() { bool use_single_dock_column = false; { - int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode"); + int dpi_mode = EditorSettings::get_singleton()->get("interface/hidpi_mode"); if (dpi_mode==0) { editor_set_scale( OS::get_singleton()->get_screen_dpi(0) > 150 && OS::get_singleton()->get_screen_size(OS::get_singleton()->get_current_screen()).x>2000 ? 2.0 : 1.0 ); @@ -5425,9 +5450,9 @@ EditorNode::EditorNode() { ResourceLoader::set_abort_on_missing_resources(false); - FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files")); - EditorFileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files")); - EditorFileDialog::set_default_display_mode((EditorFileDialog::DisplayMode)EditorSettings::get_singleton()->get("file_dialog/display_mode").operator int()); + FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files")); + EditorFileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files")); + EditorFileDialog::set_default_display_mode((EditorFileDialog::DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int()); ResourceLoader::set_error_notify_func(this,_load_error_notify); ResourceLoader::set_dependency_error_notify_func(this,_dependency_error_report); @@ -5458,11 +5483,11 @@ EditorNode::EditorNode() { editor_import_export->load_config(); - GLOBAL_DEF("editor/main_run_args","$exec -path $path -scene $scene $main_scene"); + GLOBAL_DEF("editor/main_run_args","$scene"); - ObjectTypeDB::set_type_enabled("CollisionShape",true); - ObjectTypeDB::set_type_enabled("CollisionShape2D",true); - ObjectTypeDB::set_type_enabled("CollisionPolygon2D",true); + ClassDB::set_class_enabled("CollisionShape",true); + ClassDB::set_class_enabled("CollisionShape2D",true); + ClassDB::set_class_enabled("CollisionPolygon2D",true); Control *theme_base = memnew( Control ); add_child(theme_base); @@ -5493,7 +5518,7 @@ EditorNode::EditorNode() { #if 0 PanelContainer *top_dark_panel = memnew( PanelContainer ); Ref<StyleBoxTexture> top_dark_sb; - top_dark_sb.instance();; + top_dark_sb.instance(); top_dark_sb->set_texture(theme->get_icon("PanelTop","EditorIcons")); for(int i=0;i<4;i++) { top_dark_sb->set_margin_size(Margin(i),3); @@ -5513,7 +5538,7 @@ EditorNode::EditorNode() { menu_hb = memnew( HBoxContainer ); main_vbox->add_child(menu_hb); -// top_dark_vb->add_child(scene_tabs); + //top_dark_vb->add_child(scene_tabs); //left left_l_hsplit = memnew( HSplitContainer ); main_vbox->add_child(left_l_hsplit); @@ -5615,14 +5640,14 @@ EditorNode::EditorNode() { dock_select = memnew( Control ); dock_select->set_custom_minimum_size(Size2(128,64)*EDSCALE); - dock_select->connect("input_event",this,"_dock_select_input"); + dock_select->connect("gui_input",this,"_dock_select_input"); dock_select->connect("draw",this,"_dock_select_draw"); - dock_select->connect("mouse_exit",this,"_dock_popup_exit"); + dock_select->connect("mouse_exited",this,"_dock_popup_exit"); dock_select->set_v_size_flags(Control::SIZE_EXPAND_FILL); dock_vb->add_child(dock_select); - dock_select_popoup->set_child_rect(dock_vb); + dock_select_popoup->set_as_minsize(); dock_select_rect_over=-1; dock_popup_selected=-1; @@ -5661,7 +5686,7 @@ EditorNode::EditorNode() { scene_tabs=memnew( Tabs ); scene_tabs->add_tab("unsaved"); scene_tabs->set_tab_align(Tabs::ALIGN_CENTER); - scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("global/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) ); + scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("interface/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) ); scene_tabs->connect("tab_changed",this,"_scene_tab_changed"); scene_tabs->connect("right_button_pressed",this,"_scene_tab_script_edited"); scene_tabs->connect("tab_close", this, "_scene_tab_closed"); @@ -5672,6 +5697,7 @@ EditorNode::EditorNode() { scene_root_parent->set_custom_minimum_size(Size2(0,80)*EDSCALE); + //Ref<StyleBox> sp = scene_root_parent->get_stylebox("panel","TabContainer"); //scene_root_parent->add_style_override("panel",sp); @@ -5685,16 +5711,18 @@ EditorNode::EditorNode() { scene_root = memnew( Viewport ); + scene_root->set_disable_3d(true); + //scene_root_base->add_child(scene_root); //scene_root->set_meta("_editor_disable_input",true); - VisualServer::get_singleton()->viewport_set_hide_scenario(scene_root->get_viewport(),true); + VisualServer::get_singleton()->viewport_set_hide_scenario(scene_root->get_viewport_rid(),true); scene_root->set_disable_input(true); scene_root->set_as_audio_listener_2d(true); - scene_root->set_size_override(true,Size2(Globals::get_singleton()->get("display/width"),Globals::get_singleton()->get("display/height"))); + //scene_root->set_size_override(true,Size2(GlobalConfig::get_singleton()->get("display/width"),GlobalConfig::get_singleton()->get("display/height"))); -// scene_root->set_world_2d( Ref<World2D>( memnew( World2D )) ); + //scene_root->set_world_2d( Ref<World2D>( memnew( World2D )) ); viewport = memnew( VBoxContainer ); @@ -5705,6 +5733,7 @@ EditorNode::EditorNode() { scene_root_parent->add_child(viewport); + PanelContainer *top_region = memnew( PanelContainer ); top_region->add_style_override("panel",gui_base->get_stylebox("hover","Button")); HBoxContainer *left_menu_hb = memnew( HBoxContainer ); @@ -5734,6 +5763,7 @@ EditorNode::EditorNode() { ED_SHORTCUT("editor/next_tab", TTR("Next tab"), KEY_MASK_CMD+KEY_TAB); ED_SHORTCUT("editor/prev_tab", TTR("Previous tab"), KEY_MASK_CMD+KEY_MASK_SHIFT+KEY_TAB); + ED_SHORTCUT("editor/filter_files", TTR("Filter Files.."), KEY_MASK_ALT+KEY_MASK_CMD+KEY_P); file_menu->set_tooltip(TTR("Operations with scene files.")); @@ -5753,7 +5783,6 @@ EditorNode::EditorNode() { p->add_separator(); p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene",TTR("Quick Open Scene.."),KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCENE); p->add_shortcut(ED_SHORTCUT("editor/quick_open_script",TTR("Quick Open Script.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCRIPT); - p->add_shortcut(ED_SHORTCUT("editor/quick_filter_files",TTR("Quick Filter Files.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_P),FILE_QUICK_OPEN_FILE); p->add_separator(); PopupMenu *pm_export = memnew(PopupMenu ); @@ -5764,11 +5793,11 @@ EditorNode::EditorNode() { pm_export->add_separator(); pm_export->add_shortcut(ED_SHORTCUT("editor/convert_to_MeshLibrary", TTR("MeshLibrary..")), FILE_EXPORT_MESH_LIBRARY); pm_export->add_shortcut(ED_SHORTCUT("editor/convert_to_TileSet", TTR("TileSet..")), FILE_EXPORT_TILESET); - pm_export->connect("item_pressed",this,"_menu_option"); + pm_export->connect("id_pressed",this,"_menu_option"); p->add_separator(); - p->add_item(TTR("Undo"),EDIT_UNDO,KEY_MASK_CMD+KEY_Z); - p->add_item(TTR("Redo"),EDIT_REDO,KEY_MASK_CMD+KEY_MASK_SHIFT+KEY_Z); + p->add_shortcut(ED_SHORTCUT("editor/undo", TTR("Undo"),KEY_MASK_CMD+KEY_Z),EDIT_UNDO,true); + p->add_shortcut(ED_SHORTCUT("editor/redo", TTR("Redo"),KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_Z),EDIT_REDO,true); p->add_separator(); p->add_item(TTR("Run Script"),FILE_RUN_SCRIPT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_R); p->add_separator(); @@ -5786,7 +5815,7 @@ EditorNode::EditorNode() { recent_scenes = memnew( PopupMenu ); recent_scenes->set_name("RecentScenes"); p->add_child(recent_scenes); - recent_scenes->connect("item_pressed",this,"_open_recent_scene"); + recent_scenes->connect("id_pressed",this,"_open_recent_scene"); { Control *sp = memnew( Control ); @@ -5811,7 +5840,7 @@ EditorNode::EditorNode() { #if 0 node_menu = memnew( MenuButton ); node_menu->set_text("Node"); - node_menu->set_pos( Point2( 50,0) );; + node_menu->set_pos( Point2( 50,0) ); menu_panel->add_child( node_menu ); p=node_menu->get_popup(); @@ -5843,7 +5872,7 @@ EditorNode::EditorNode() { left_menu_hb->add_child( import_menu ); p=import_menu->get_popup(); - p->connect("item_pressed",this,"_menu_option"); + p->connect("id_pressed",this,"_menu_option"); tool_menu = memnew( MenuButton ); tool_menu->set_tooltip(TTR("Miscellaneous project or scene-wide tools.")); @@ -5853,7 +5882,7 @@ EditorNode::EditorNode() { left_menu_hb->add_child( tool_menu ); p=tool_menu->get_popup(); - p->connect("item_pressed",this,"_menu_option"); + p->connect("id_pressed",this,"_menu_option"); p->add_item(TTR("Orphan Resource Explorer"),TOOLS_ORPHAN_RESOURCES); export_button = memnew( ToolButton ); @@ -5872,7 +5901,7 @@ EditorNode::EditorNode() { play_cc = memnew( CenterContainer ); - play_cc->set_ignore_mouse(true); + play_cc->set_mouse_filter(Control::MOUSE_FILTER_IGNORE); gui_base->add_child( play_cc ); play_cc->set_area_as_parent_rect(); play_cc->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_BEGIN,10); @@ -5923,11 +5952,11 @@ EditorNode::EditorNode() { native_play_button->set_text("NTV"); menu_hb->add_child(native_play_button); native_play_button->hide(); - native_play_button->get_popup()->connect("item_pressed",this,"_run_in_device"); + native_play_button->get_popup()->connect("id_pressed",this,"_run_in_device"); run_native->connect("native_run",this,"_menu_option",varray(RUN_PLAY_NATIVE)); -// VSeparator *s1 = memnew( VSeparator ); -// play_hb->add_child(s1); + //VSeparator *s1 = memnew( VSeparator ); + //play_hb->add_child(s1); play_scene_button = memnew( ToolButton ); play_hb->add_child(play_scene_button); @@ -5957,6 +5986,7 @@ EditorNode::EditorNode() { debug_button->set_tooltip(TTR("Debug options")); p=debug_button->get_popup(); + p->set_hide_on_item_selection(false); p->add_check_item(TTR("Deploy with Remote Debug"),RUN_DEPLOY_REMOTE_DEBUG); p->set_item_tooltip(p->get_item_count()-1,TTR("When exporting or deploying, the resulting executable will attempt to connect to the IP of this computer in order to be debugged.")); p->add_check_item(TTR("Small Deploy with Network FS"),RUN_FILE_SERVER); @@ -5971,7 +6001,7 @@ EditorNode::EditorNode() { p->set_item_tooltip(p->get_item_count()-1,TTR("When this option is turned on, any changes made to the scene in the editor will be replicated in the running game.\nWhen used remotely on a device, this is more efficient with network filesystem.")); p->add_check_item(TTR("Sync Script Changes"),RUN_RELOAD_SCRIPTS); p->set_item_tooltip(p->get_item_count()-1,TTR("When this option is turned on, any script that is saved will be reloaded on the running game.\nWhen used remotely on a device, this is more efficient with network filesystem.")); - p->connect("item_pressed",this,"_menu_option"); + p->connect("id_pressed",this,"_menu_option"); /* run_settings_button = memnew( ToolButton ); @@ -6015,7 +6045,7 @@ EditorNode::EditorNode() { audio_vu->set_max(24); audio_vu->set_min(-80); audio_vu->set_step(0.01); - audio_vu->set_val(0); + audio_vu->set_value(0); { Control *sp = memnew( Control ); @@ -6045,7 +6075,7 @@ EditorNode::EditorNode() { editor_layouts = memnew( PopupMenu ); editor_layouts->set_name("Layouts"); p->add_child(editor_layouts); - editor_layouts->connect("item_pressed",this,"_layout_menu_option"); + editor_layouts->connect("id_pressed",this,"_layout_menu_option"); p->add_submenu_item(TTR("Editor Layout"), "Layouts"); p->add_shortcut(ED_SHORTCUT("editor/fullscreen_mode",TTR("Toggle Fullscreen"),KEY_MASK_SHIFT|KEY_F11),SETTINGS_TOGGLE_FULLSCREN); @@ -6157,7 +6187,7 @@ EditorNode::EditorNode() { prop_editor_hb->add_child(resource_save_button); resource_save_button->get_popup()->add_item(TTR("Save"),RESOURCE_SAVE); resource_save_button->get_popup()->add_item(TTR("Save As.."),RESOURCE_SAVE_AS); - resource_save_button->get_popup()->connect("item_pressed",this,"_menu_option"); + resource_save_button->get_popup()->connect("id_pressed",this,"_menu_option"); resource_save_button->set_focus_mode(Control::FOCUS_NONE); resource_save_button->set_disabled(true); @@ -6185,7 +6215,7 @@ EditorNode::EditorNode() { editor_history_menu->set_icon( gui_base->get_icon("History","EditorIcons")); prop_editor_hb->add_child(editor_history_menu); editor_history_menu->connect("about_to_show",this,"_prepare_history"); - editor_history_menu->get_popup()->connect("item_pressed",this,"_select_history"); + editor_history_menu->get_popup()->connect("id_pressed",this,"_select_history"); prop_editor_hb = memnew( HBoxContainer ); //again... @@ -6250,21 +6280,21 @@ EditorNode::EditorNode() { dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(node_dock); } - scenes_dock = memnew( FileSystemDock(this) ); - scenes_dock->set_name(TTR("FileSystem")); - scenes_dock->set_display_mode(int(EditorSettings::get_singleton()->get("filesystem_dock/display_mode"))); + filesystem_dock = memnew( FileSystemDock(this) ); + filesystem_dock->set_name(TTR("FileSystem")); + filesystem_dock->set_display_mode(int(EditorSettings::get_singleton()->get("docks/filesystem/display_mode"))); if (use_single_dock_column) { - dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(scenes_dock); + dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(filesystem_dock); left_r_vsplit->hide(); dock_slot[DOCK_SLOT_LEFT_UR]->hide(); dock_slot[DOCK_SLOT_LEFT_BR]->hide(); } else { - dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scenes_dock); + dock_slot[DOCK_SLOT_LEFT_UR]->add_child(filesystem_dock); } - //prop_pallete->add_child(scenes_dock); - scenes_dock->connect("open",this,"open_request"); - scenes_dock->connect("instance",this,"_instance_request"); + //prop_pallete->add_child(filesystem_dock); + filesystem_dock->connect("open",this,"open_request"); + filesystem_dock->connect("instance",this,"_instance_request"); const String docks_section = "docks"; @@ -6313,8 +6343,8 @@ EditorNode::EditorNode() { bottom_pc->add_child(bottom_hb);*/ -// center_vb->add_child( log->get_button() ); -// log->get_button()->set_h_size_flags(Control::SIZE_EXPAND_FILL); + //center_vb->add_child( log->get_button() ); + //log->get_button()->set_h_size_flags(Control::SIZE_EXPAND_FILL); //progress_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -6329,7 +6359,7 @@ EditorNode::EditorNode() { animation_menu->set_focus_mode(Control::FOCUS_NONE); menu_panel->add_child(animation_menu); animation_menu->set_icon(gui_base->get_icon("Animation","EditorIcons")); - animation_menu->connect("pressed",this,"_animation_visibility_toggle");; + animation_menu->connect("pressed",this,"_animation_visibility_toggle"); */ @@ -6338,9 +6368,7 @@ EditorNode::EditorNode() { - call_dialog = memnew( CallDialog ); - call_dialog->hide(); - gui_base->add_child( call_dialog ); + @@ -6364,7 +6392,7 @@ EditorNode::EditorNode() { -// optimized_save = memnew( OptimizedSaveDialog(&editor_data) ); + //optimized_save = memnew( OptimizedSaveDialog(&editor_data) ); //gui_base->add_child(optimized_save); //optimized_save->connect("confirmed",this,"_save_optimized"); @@ -6421,11 +6449,11 @@ EditorNode::EditorNode() { about->get_ok()->set_text(TTR("Thanks!")); about->set_hide_on_ok(true); Label *about_text = memnew( Label ); - about_text->set_text(VERSION_FULL_NAME"\n(c) 2008-2016 Juan Linietsky, Ariel Manzur.\n"); + about_text->set_text(VERSION_FULL_NAME"\n(c) 2008-2017 Juan Linietsky, Ariel Manzur.\n"); about_text->set_pos(Point2(gui_base->get_icon("Logo","EditorIcons")->get_size().width+30,20)); gui_base->add_child(about); about->add_child(about_text); - TextureFrame *logo = memnew( TextureFrame ); + TextureRect *logo = memnew( TextureRect ); about->add_child(logo); logo->set_pos(Point2(20,20)); logo->set_texture(gui_base->get_icon("Logo","EditorIcons") ); @@ -6496,11 +6524,11 @@ EditorNode::EditorNode() { - file_menu->get_popup()->connect("item_pressed", this,"_menu_option"); - object_menu->get_popup()->connect("item_pressed", this,"_menu_option"); + file_menu->get_popup()->connect("id_pressed", this,"_menu_option"); + object_menu->get_popup()->connect("id_pressed", this,"_menu_option"); - update_menu->get_popup()->connect("item_pressed", this,"_menu_option"); - settings_menu->get_popup()->connect("item_pressed", this,"_menu_option"); + update_menu->get_popup()->connect("id_pressed", this,"_menu_option"); + settings_menu->get_popup()->connect("id_pressed", this,"_menu_option"); file->connect("file_selected", this,"_dialog_action"); @@ -6517,20 +6545,20 @@ EditorNode::EditorNode() { Ref<EditorSceneImportPlugin> _scene_import = memnew(EditorSceneImportPlugin(this) ); Ref<EditorSceneImporterCollada> _collada_import = memnew( EditorSceneImporterCollada); _scene_import->add_importer(_collada_import); -// Ref<EditorSceneImporterFBXConv> _fbxconv_import = memnew( EditorSceneImporterFBXConv); -// _scene_import->add_importer(_fbxconv_import); + //Ref<EditorSceneImporterFBXConv> _fbxconv_import = memnew( EditorSceneImporterFBXConv); + //_scene_import->add_importer(_fbxconv_import); editor_import_export->add_import_plugin( _scene_import); // TODO: This plugin has no code, it should be either implemented or dropped (GH-3667) // editor_import_export->add_import_plugin( Ref<EditorSceneAnimationImportPlugin>( memnew(EditorSceneAnimationImportPlugin(this)))); editor_import_export->add_import_plugin( Ref<EditorMeshImportPlugin>( memnew(EditorMeshImportPlugin(this)))); editor_import_export->add_import_plugin( Ref<EditorFontImportPlugin>( memnew(EditorFontImportPlugin(this)))); - editor_import_export->add_import_plugin( Ref<EditorSampleImportPlugin>( memnew(EditorSampleImportPlugin(this)))); +// editor_import_export->add_import_plugin( Ref<EditorSampleImportPlugin>( memnew(EditorSampleImportPlugin(this)))); editor_import_export->add_import_plugin( Ref<EditorTranslationImportPlugin>( memnew(EditorTranslationImportPlugin(this)))); editor_import_export->add_import_plugin( Ref<EditorBitMaskImportPlugin>( memnew(EditorBitMaskImportPlugin(this)))); editor_import_export->add_export_plugin( Ref<EditorTextureExportPlugin>( memnew(EditorTextureExportPlugin))); - editor_import_export->add_export_plugin( Ref<EditorSampleExportPlugin>( memnew(EditorSampleExportPlugin))); +// editor_import_export->add_export_plugin( Ref<EditorSampleExportPlugin>( memnew(EditorSampleExportPlugin))); editor_import_export->add_export_plugin( Ref<EditorSceneExportPlugin>( memnew(EditorSceneExportPlugin))); @@ -6539,6 +6567,9 @@ EditorNode::EditorNode() { add_editor_plugin( memnew( SpatialEditorPlugin(this) ) ); add_editor_plugin( memnew( ScriptEditorPlugin(this) ) ); + + EditorAudioBuses *audio_bus_editor = EditorAudioBuses::register_editor(); + ScriptTextEditor::register_editor(); //register one for text scripts if (StreamPeerSSL::is_available()) { @@ -6549,43 +6580,46 @@ EditorNode::EditorNode() { //more visually meaningful to have this later raise_bottom_panel_item(AnimationPlayerEditor::singleton); - add_editor_plugin( memnew( ShaderGraphEditorPlugin(this,true) ) ); + add_editor_plugin( memnew( ShaderEditorPlugin(this) ) ); +/* add_editor_plugin( memnew( ShaderGraphEditorPlugin(this,true) ) ); add_editor_plugin( memnew( ShaderGraphEditorPlugin(this,false) ) ); - add_editor_plugin( memnew( ShaderEditorPlugin(this,true) ) ); - add_editor_plugin( memnew( ShaderEditorPlugin(this,false) ) ); + + add_editor_plugin( memnew( ShaderEditorPlugin(this,false) ) );*/ add_editor_plugin( memnew( CameraEditorPlugin(this) ) ); - add_editor_plugin( memnew( SampleEditorPlugin(this) ) ); - add_editor_plugin( memnew( SampleLibraryEditorPlugin(this) ) ); +// add_editor_plugin( memnew( SampleEditorPlugin(this) ) ); +// add_editor_plugin( memnew( SampleLibraryEditorPlugin(this) ) ); add_editor_plugin( memnew( ThemeEditorPlugin(this) ) ); add_editor_plugin( memnew( MultiMeshEditorPlugin(this) ) ); add_editor_plugin( memnew( MeshInstanceEditorPlugin(this) ) ); add_editor_plugin( memnew( AnimationTreeEditorPlugin(this) ) ); //add_editor_plugin( memnew( SamplePlayerEditorPlugin(this) ) ); - this is kind of useless at this point - add_editor_plugin( memnew( MeshLibraryEditorPlugin(this) ) ); + //add_editor_plugin( memnew( MeshLibraryEditorPlugin(this) ) ); //add_editor_plugin( memnew( StreamEditorPlugin(this) ) ); add_editor_plugin( memnew( StyleBoxEditorPlugin(this) ) ); - add_editor_plugin( memnew( ParticlesEditorPlugin(this) ) ); + //add_editor_plugin( memnew( ParticlesEditorPlugin(this) ) ); add_editor_plugin( memnew( ResourcePreloaderEditorPlugin(this) ) ); add_editor_plugin( memnew( ItemListEditorPlugin(this) ) ); //add_editor_plugin( memnew( RichTextEditorPlugin(this) ) ); - add_editor_plugin( memnew( CollisionPolygonEditorPlugin(this) ) ); + //add_editor_plugin( memnew( CollisionPolygonEditorPlugin(this) ) ); add_editor_plugin( memnew( CollisionPolygon2DEditorPlugin(this) ) ); add_editor_plugin( memnew( TileSetEditorPlugin(this) ) ); add_editor_plugin( memnew( TileMapEditorPlugin(this) ) ); add_editor_plugin( memnew( SpriteFramesEditorPlugin(this) ) ); add_editor_plugin( memnew( TextureRegionEditorPlugin(this) ) ); add_editor_plugin( memnew( Particles2DEditorPlugin(this) ) ); + add_editor_plugin( memnew( GIProbeEditorPlugin(this) ) ); add_editor_plugin( memnew( Path2DEditorPlugin(this) ) ); - add_editor_plugin( memnew( PathEditorPlugin(this) ) ); - add_editor_plugin( memnew( BakedLightEditorPlugin(this) ) ); + //add_editor_plugin( memnew( PathEditorPlugin(this) ) ); + //add_editor_plugin( memnew( BakedLightEditorPlugin(this) ) ); add_editor_plugin( memnew( Polygon2DEditorPlugin(this) ) ); add_editor_plugin( memnew( LightOccluder2DEditorPlugin(this) ) ); add_editor_plugin( memnew( NavigationPolygonEditorPlugin(this) ) ); add_editor_plugin( memnew( ColorRampEditorPlugin(this) ) ); add_editor_plugin( memnew( CollisionShape2DEditorPlugin(this) ) ); add_editor_plugin( memnew( TextureEditorPlugin(this) ) ); - add_editor_plugin( memnew( MaterialEditorPlugin(this) ) ); - add_editor_plugin( memnew( MeshEditorPlugin(this) ) ); + add_editor_plugin( memnew( AudioBusesEditorPlugin(audio_bus_editor) ) ); + //add_editor_plugin( memnew( MaterialEditorPlugin(this) ) ); + //add_editor_plugin( memnew( MeshEditorPlugin(this) ) ); for(int i=0;i<EditorPlugins::get_plugin_count();i++) add_editor_plugin( EditorPlugins::create(i,this) ); @@ -6594,18 +6628,18 @@ EditorNode::EditorNode() { plugin_init_callbacks[i](); } - resource_preview->add_preview_generator( Ref<EditorTexturePreviewPlugin>( memnew(EditorTexturePreviewPlugin ))); + /*resource_preview->add_preview_generator( Ref<EditorTexturePreviewPlugin>( memnew(EditorTexturePreviewPlugin ))); resource_preview->add_preview_generator( Ref<EditorPackedScenePreviewPlugin>( memnew(EditorPackedScenePreviewPlugin ))); resource_preview->add_preview_generator( Ref<EditorMaterialPreviewPlugin>( memnew(EditorMaterialPreviewPlugin ))); resource_preview->add_preview_generator( Ref<EditorScriptPreviewPlugin>( memnew(EditorScriptPreviewPlugin ))); resource_preview->add_preview_generator( Ref<EditorSamplePreviewPlugin>( memnew(EditorSamplePreviewPlugin ))); resource_preview->add_preview_generator( Ref<EditorMeshPreviewPlugin>( memnew(EditorMeshPreviewPlugin ))); resource_preview->add_preview_generator( Ref<EditorBitmapPreviewPlugin>( memnew(EditorBitmapPreviewPlugin ))); - +*/ circle_step_msec=OS::get_singleton()->get_ticks_msec(); - circle_step_frame=OS::get_singleton()->get_frames_drawn(); + circle_step_frame=Engine::get_singleton()->get_frames_drawn(); circle_step=0; _rebuild_import_menu(); @@ -6613,7 +6647,7 @@ EditorNode::EditorNode() { editor_plugin_screen=NULL; editor_plugins_over = memnew(EditorPluginList); -// force_top_viewport(true); + //force_top_viewport(true); _edit_current(); current=NULL; @@ -6621,8 +6655,8 @@ EditorNode::EditorNode() { Physics2DServer::get_singleton()->set_active(false); // no physics by default if editor ScriptServer::set_scripting_enabled(false); // no scripting by default if editor - Globals::get_singleton()->set("debug/indicators_enabled",true); - Globals::get_singleton()->set("render/room_cull_enabled",false); + + //GlobalConfig::get_singleton()->set("render/room_cull_enabled",false); reference_resource_mem=true; save_external_resources_mem=true; @@ -6636,7 +6670,7 @@ EditorNode::EditorNode() { //store project name in ssettings String project_name; //figure it out from path - project_name=Globals::get_singleton()->get_resource_path().replace("\\","/"); + project_name=GlobalConfig::get_singleton()->get_resource_path().replace("\\","/"); print_line("path: "+project_name); if (project_name.length() && project_name[project_name.length()-1]=='/') project_name=project_name.substr(0,project_name.length()-1); @@ -6644,7 +6678,7 @@ EditorNode::EditorNode() { project_name=project_name.replace("/","::"); if (project_name!="") { - EditorSettings::get_singleton()->set("projects/"+project_name,Globals::get_singleton()->get_resource_path()); + EditorSettings::get_singleton()->set("projects/"+project_name,GlobalConfig::get_singleton()->get_resource_path()); EditorSettings::get_singleton()->raise_order("projects/"+project_name); EditorSettings::get_singleton()->save(); } @@ -6675,15 +6709,16 @@ EditorNode::EditorNode() { set_process_unhandled_input(true); _playing_edited=false; -// Panel *errors = memnew( Panel ); + //Panel *errors = memnew( Panel ); load_errors = memnew( RichTextLabel ); -// load_errors->set_readonly(true); + //load_errors->set_readonly(true); load_error_dialog = memnew( AcceptDialog ); load_error_dialog->add_child(load_errors); load_error_dialog->set_title(TTR("Load Errors")); - load_error_dialog->set_child_rect(load_errors); + //load_error_dialog->set_child_rect(load_errors); gui_base->add_child(load_error_dialog); + //EditorImport::add_importer( Ref<EditorImporterCollada>( memnew(EditorImporterCollada ))); EditorFileSystem::get_singleton()->connect("sources_changed",this,"_sources_changed"); @@ -6696,7 +6731,7 @@ EditorNode::EditorNode() { theme_base->get_theme()->get_icon_list(ei,&tl); for(List<StringName>::Element *E=tl.front();E;E=E->next()) { - if (!ObjectTypeDB::type_exists(E->get())) + if (!ClassDB::class_exists(E->get())) continue; icon_type_cache[E->get()]=theme_base->get_theme()->get_icon(E->get(),ei); } @@ -6712,8 +6747,8 @@ EditorNode::EditorNode() { pick_main_scene->get_ok()->set_text("Select"); pick_main_scene->connect("confirmed",this,"_menu_option",varray(SETTINGS_PICK_MAIN_SCENE)); -// Ref<ImageTexture> it = gui_base->get_icon("logo","Icons"); -// OS::get_singleton()->set_icon( it->get_data() ); + //Ref<ImageTexture> it = gui_base->get_icon("logo","Icons"); + //OS::get_singleton()->set_icon( it->get_data() ); for(int i=0;i<_init_callbacks.size();i++) _init_callbacks[i](); @@ -6725,7 +6760,7 @@ EditorNode::EditorNode() { { _initializing_addons=true; - Vector<String> addons = Globals::get_singleton()->get("editor_plugins/enabled"); + Vector<String> addons = GlobalConfig::get_singleton()->get("editor_plugins/enabled"); for(int i=0;i<addons.size();i++) { set_addon_plugin_enabled(addons[i],true); @@ -6774,12 +6809,12 @@ void EditorPluginList::edit(Object* p_object) { } -bool EditorPluginList::forward_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { +bool EditorPluginList::forward_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { bool discard = false; for (int i = 0; i < plugins_list.size(); i++) { - if (plugins_list[i]->forward_canvas_input_event(p_canvas_xform,p_event)) { + if (plugins_list[i]->forward_canvas_gui_input(p_canvas_xform,p_event)) { discard = true; } } @@ -6787,11 +6822,11 @@ bool EditorPluginList::forward_input_event(const Matrix32& p_canvas_xform,const return discard; } -bool EditorPluginList::forward_spatial_input_event(Camera* p_camera, const InputEvent& p_event) { +bool EditorPluginList::forward_spatial_gui_input(Camera* p_camera, const InputEvent& p_event) { bool discard = false; for (int i = 0; i < plugins_list.size(); i++) { - if (plugins_list[i]->forward_spatial_input_event(p_camera, p_event)) { + if (plugins_list[i]->forward_spatial_gui_input(p_camera, p_event)) { discard = true; } } @@ -6799,7 +6834,7 @@ bool EditorPluginList::forward_spatial_input_event(Camera* p_camera, const Input return discard; } -void EditorPluginList::forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control* p_canvas) { +void EditorPluginList::forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control* p_canvas) { for (int i = 0; i < plugins_list.size(); i++) { plugins_list[i]->forward_draw_over_canvas(p_canvas_xform,p_canvas); diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h index 6392b96f8f..fbba7ae7a9 100644 --- a/tools/editor/editor_node.h +++ b/tools/editor/editor_node.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -79,7 +79,7 @@ #include "fileserver/editor_file_server.h" #include "editor_resource_preview.h" - +#include "scene/gui/viewport_container.h" #include "progress_dialog.h" @@ -101,7 +101,7 @@ class EditorPluginList; class EditorNode : public Node { - OBJ_TYPE( EditorNode, Node ); + GDCLASS( EditorNode, Node ); public: enum DockSlot { @@ -139,7 +139,6 @@ private: FILE_OPEN_OLD_SCENE, FILE_QUICK_OPEN_SCENE, FILE_QUICK_OPEN_SCRIPT, - FILE_QUICK_OPEN_FILE, FILE_RUN_SCRIPT, FILE_OPEN_PREV, FILE_CLOSE, @@ -159,7 +158,6 @@ private: OBJECT_COPY_PARAMS, OBJECT_PASTE_PARAMS, OBJECT_UNIQUE_RESOURCES, - OBJECT_CALL_METHOD, OBJECT_REQUEST_HELP, RUN_PLAY, @@ -198,7 +196,9 @@ private: IMPORT_PLUGIN_BASE=100, - OBJECT_METHOD_BASE=500 + OBJECT_METHOD_BASE=500, + + TOOL_MENU_BASE=1000 }; @@ -208,7 +208,7 @@ private: //Ref<ResourceImportMetadata> scene_import_metadata; - Control* scene_root_parent; + PanelContainer* scene_root_parent; Control *gui_base; VBoxContainer *main_vbox; @@ -279,7 +279,7 @@ private: PropertyEditor *property_editor; NodeDock *node_dock; VBoxContainer *prop_editor_vb; - FileSystemDock *scenes_dock; + FileSystemDock *filesystem_dock; EditorRunNative *run_native; HBoxContainer *search_bar; @@ -287,7 +287,7 @@ private: CreateDialog *create_dialog; - CallDialog *call_dialog; + //CallDialog *call_dialog; ConfirmationDialog *confirmation; ConfirmationDialog *import_confirmation; ConfirmationDialog *open_recent_confirmation; @@ -594,6 +594,22 @@ private: void _call_build(); static int build_callback_count; static EditorBuildCallback build_callbacks[MAX_BUILD_CALLBACKS]; + + bool _initializing_tool_menu; + + struct ToolMenuItem { + String name; + String submenu; + Variant ud; + ObjectID handler; + String callback; + }; + + Vector<ToolMenuItem> tool_menu_items; + + void _tool_menu_insert_item(const ToolMenuItem& p_item); + void _rebuild_tool_menu() const; + protected: void _notification(int p_what); static void _bind_methods(); @@ -689,7 +705,7 @@ public: void request_instance_scene(const String &p_path); void request_instance_scenes(const Vector<String>& p_files); - FileSystemDock *get_scenes_dock(); + FileSystemDock *get_filesystem_dock(); SceneTreeDock *get_scene_tree_dock(); static UndoRedo* get_undo_redo() { return &singleton->editor_data.get_undo_redo(); } @@ -756,6 +772,9 @@ public: Variant drag_files(const Vector<String>& p_files,Control* p_from); Variant drag_files_and_dirs(const Vector<String>& p_files,Control* p_from); + void add_tool_menu_item(const String& p_name, Object *p_handler, const String& p_callback, const Variant& p_ud = Variant()); + void add_tool_submenu_item(const String& p_name, PopupMenu *p_submenu); + void remove_tool_menu_item(const String& p_name); EditorNode(); ~EditorNode(); @@ -793,9 +812,9 @@ public: void make_visible(bool p_visible); void edit(Object *p_object); - bool forward_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event); - bool forward_spatial_input_event(Camera* p_camera, const InputEvent& p_event); - void forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control* p_canvas); + bool forward_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event); + bool forward_spatial_gui_input(Camera* p_camera, const InputEvent& p_event); + void forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control* p_canvas); void clear(); bool empty(); diff --git a/tools/editor/editor_path.cpp b/tools/editor/editor_path.cpp index 6b804b6a24..8cd31c4bcc 100644 --- a/tools/editor/editor_path.cpp +++ b/tools/editor/editor_path.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,32 +28,106 @@ /*************************************************************************/ #include "editor_path.h" +#include "editor_scale.h" +#include "editor_node.h" + +void EditorPath::_add_children_to_popup(Object* p_obj,int p_depth) { + + if (p_depth>8) + return; + + List<PropertyInfo> pinfo; + p_obj->get_property_list(&pinfo); + for (List<PropertyInfo>::Element *E=pinfo.front();E;E=E->next()) { + + if (!(E->get().usage&PROPERTY_USAGE_EDITOR)) + continue; + if (E->get().hint!=PROPERTY_HINT_RESOURCE_TYPE) + continue; + + Variant value = p_obj->get(E->get().name); + if (value.get_type()!=Variant::OBJECT) + continue; + Object *obj = value; + if (!obj) + continue; + + Ref<Texture> icon; + + if (has_icon(obj->get_class(),"EditorIcons")) + icon=get_icon(obj->get_class(),"EditorIcons"); + else + icon=get_icon("Object","EditorIcons"); + + int index = popup->get_item_count(); + popup->add_icon_item(icon,E->get().name.capitalize(),objects.size()); + popup->set_item_h_offset(index,p_depth*10*EDSCALE); + objects.push_back(obj->get_instance_ID()); + + _add_children_to_popup(obj,p_depth+1); + } +} + +void EditorPath::_gui_input(const InputEvent& p_event) { + + if (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==BUTTON_LEFT && p_event.mouse_button.pressed) { + + + Object *obj = ObjectDB::get_instance(history->get_path_object( history->get_path_size()-1)); + if (!obj) + return; + + + + objects.clear(); + popup->clear(); + _add_children_to_popup(obj); + popup->set_pos( get_global_pos() + Vector2(0,get_size().height)); + popup->set_size( Size2(get_size().width,1)); + popup->popup(); + } +} void EditorPath::_notification(int p_what) { switch(p_what) { + case NOTIFICATION_MOUSE_ENTER: { + mouse_over=true; + update(); + } break; + case NOTIFICATION_MOUSE_EXIT: { + mouse_over=false; + update(); + } break; case NOTIFICATION_DRAW: { RID ci=get_canvas_item(); Ref<Font> label_font = get_font("font","Label"); Size2i size = get_size(); Ref<Texture> sn = get_icon("SmallNext","EditorIcons"); + Ref<StyleBox> sb = get_stylebox("pressed","Button"); + + + int ofs=sb->get_margin(MARGIN_LEFT); + + if (mouse_over) { + draw_style_box(sb,Rect2(Point2(),get_size())); + } - int ofs=5; for(int i=0;i<history->get_path_size();i++) { Object *obj = ObjectDB::get_instance(history->get_path_object(i)); if (!obj) continue; - String type = obj->get_type(); + String type = obj->get_class(); Ref<Texture> icon; - if (has_icon(obj->get_type(),"EditorIcons")) - icon=get_icon(obj->get_type(),"EditorIcons"); + if (has_icon(obj->get_class(),"EditorIcons")) + icon=get_icon(obj->get_class(),"EditorIcons"); else icon=get_icon("Object","EditorIcons"); @@ -78,17 +152,17 @@ void EditorPath::_notification(int p_what) { name=r->get_name(); if (name=="") - name=r->get_type(); + name=r->get_class(); } else if (obj->cast_to<Node>()) { name=obj->cast_to<Node>()->get_name(); } else if (obj->cast_to<Resource>() && obj->cast_to<Resource>()->get_name()!="") { name=obj->cast_to<Resource>()->get_name(); } else { - name=obj->get_type(); + name=obj->get_class(); } - set_tooltip(obj->get_type()); + set_tooltip(obj->get_class()); label_font->draw(ci,Point2i(ofs,(size.height-label_font->get_height())/2+label_font->get_ascent()),name,Color(1,1,1),left); @@ -108,11 +182,34 @@ void EditorPath::_notification(int p_what) { void EditorPath::update_path() { + update(); } +void EditorPath::_popup_select(int p_idx) { + + ERR_FAIL_INDEX(p_idx,objects.size()); + + Object* obj = ObjectDB::get_instance(objects[p_idx]); + if (!obj) + return; + + EditorNode::get_singleton()->push_item(obj); +} + +void EditorPath::_bind_methods() { + + ClassDB::bind_method("_gui_input",&EditorPath::_gui_input); + ClassDB::bind_method("_popup_select",&EditorPath::_popup_select); +} + EditorPath::EditorPath(EditorHistory *p_history) { history=p_history; + mouse_over=false; + popup = memnew( PopupMenu ); + popup->connect("id_pressed",this,"_popup_select"); + add_child(popup); + } diff --git a/tools/editor/editor_path.h b/tools/editor/editor_path.h index 11e1005ba3..fd5b469d07 100644 --- a/tools/editor/editor_path.h +++ b/tools/editor/editor_path.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -30,19 +30,27 @@ #define EDITOR_PATH_H #include "scene/gui/control.h" +#include "scene/gui/popup_menu.h" #include "editor_data.h" class EditorPath : public Control { - OBJ_TYPE(EditorPath,Control); + GDCLASS(EditorPath,Control); EditorHistory *history; + Vector<ObjectID> objects; + PopupMenu *popup; + bool mouse_over; EditorPath(); + void _popup_select(int p_idx); + void _gui_input(const InputEvent& p_event); + void _add_children_to_popup(Object* p_obj,int p_depth=0); protected: + static void _bind_methods(); void _notification(int p_what); public: diff --git a/tools/editor/editor_plugin.cpp b/tools/editor/editor_plugin.cpp index 4b82d5e59c..2f59b0bd07 100644 --- a/tools/editor/editor_plugin.cpp +++ b/tools/editor/editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,8 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_plugin.h" + +#include "scene/gui/popup_menu.h" #include "scene/3d/camera.h" #include "plugins/canvas_item_editor_plugin.h" #include "plugins/spatial_editor_plugin.h" @@ -76,6 +78,11 @@ Control * EditorPlugin::get_editor_viewport() { return EditorNode::get_singleton()->get_viewport(); } +void EditorPlugin::edit_resource(const Ref<Resource>& p_resource){ + + EditorNode::get_singleton()->edit_resource(p_resource); +} + void EditorPlugin::add_control_to_container(CustomControlContainer p_location,Control *p_control) { switch(p_location) { @@ -127,6 +134,24 @@ void EditorPlugin::add_control_to_container(CustomControlContainer p_location,Co } } +void EditorPlugin::add_tool_menu_item(const String& p_name, Object *p_handler, const String& p_callback, const Variant& p_ud) { + + //EditorNode::get_singleton()->add_tool_menu_item(p_name, p_handler, p_callback, p_ud); +} + +void EditorPlugin::add_tool_submenu_item(const String& p_name, Object *p_submenu) { + + ERR_FAIL_NULL(p_submenu); + PopupMenu *submenu = p_submenu->cast_to<PopupMenu>(); + ERR_FAIL_NULL(submenu); + //EditorNode::get_singleton()->add_tool_submenu_item(p_name, submenu); +} + +void EditorPlugin::remove_tool_menu_item(const String& p_name) { + + //EditorNode::get_singleton()->remove_tool_menu_item(p_name); +} + Ref<SpatialEditorGizmo> EditorPlugin::create_spatial_gizmo(Spatial* p_spatial) { //?? if (get_script_instance() && get_script_instance()->has_method("create_spatial_gizmo")) { @@ -136,15 +161,15 @@ Ref<SpatialEditorGizmo> EditorPlugin::create_spatial_gizmo(Spatial* p_spatial) { return Ref<SpatialEditorGizmo>(); } -bool EditorPlugin::forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { +bool EditorPlugin::forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { - if (get_script_instance() && get_script_instance()->has_method("forward_canvas_input_event")) { - return get_script_instance()->call("forward_canvas_input_event",p_canvas_xform,p_event); + if (get_script_instance() && get_script_instance()->has_method("forward_canvas_gui_input")) { + return get_script_instance()->call("forward_canvas_gui_input",p_canvas_xform,p_event); } return false; } -void EditorPlugin::forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control *p_canvas) { +void EditorPlugin::forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control *p_canvas) { if (get_script_instance() && get_script_instance()->has_method("forward_draw_over_canvas")) { get_script_instance()->call("forward_draw_over_canvas",p_canvas_xform,p_canvas); @@ -155,10 +180,10 @@ void EditorPlugin::update_canvas() { CanvasItemEditor::get_singleton()->get_viewport_control()->update(); } -bool EditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) { +bool EditorPlugin::forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) { - if (get_script_instance() && get_script_instance()->has_method("forward_spatial_input_event")) { - return get_script_instance()->call("forward_spatial_input_event",p_camera,p_event); + if (get_script_instance() && get_script_instance()->has_method("forward_spatial_gui_input")) { + return get_script_instance()->call("forward_spatial_gui_input",p_camera,p_event); } return false; @@ -248,7 +273,7 @@ void EditorPlugin::apply_changes() { void EditorPlugin::get_breakpoints(List<String> *p_breakpoints) { if (get_script_instance() && get_script_instance()->has_method("get_breakpoints")) { - StringArray arr = get_script_instance()->call("get_breakpoints"); + PoolStringArray arr = get_script_instance()->call("get_breakpoints"); for(int i=0;i<arr.size();i++) p_breakpoints->push_back(arr[i]); } @@ -341,56 +366,60 @@ EditorFileSystem *EditorPlugin::get_resource_file_system() { void EditorPlugin::_bind_methods() { - ObjectTypeDB::bind_method(_MD("add_control_to_container","container","control:Control"),&EditorPlugin::add_control_to_container); - ObjectTypeDB::bind_method(_MD("add_control_to_bottom_panel:ToolButton","control:Control","title"),&EditorPlugin::add_control_to_bottom_panel); - ObjectTypeDB::bind_method(_MD("add_control_to_dock","slot","control:Control"),&EditorPlugin::add_control_to_dock); - ObjectTypeDB::bind_method(_MD("remove_control_from_docks","control:Control"),&EditorPlugin::remove_control_from_docks); - ObjectTypeDB::bind_method(_MD("remove_control_from_bottom_panel","control:Control"),&EditorPlugin::remove_control_from_bottom_panel); - ObjectTypeDB::bind_method(_MD("add_custom_type","type","base","script:Script","icon:Texture"),&EditorPlugin::add_custom_type); - ObjectTypeDB::bind_method(_MD("remove_custom_type","type"),&EditorPlugin::remove_custom_type); - ObjectTypeDB::bind_method(_MD("get_editor_viewport:Control"), &EditorPlugin::get_editor_viewport); - - ObjectTypeDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::add_import_plugin); - ObjectTypeDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::remove_import_plugin); - - ObjectTypeDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::add_export_plugin); - ObjectTypeDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::remove_export_plugin); - - ObjectTypeDB::bind_method(_MD("get_resource_previewer:EditorResourcePreview"),&EditorPlugin::get_resource_previewer); - ObjectTypeDB::bind_method(_MD("get_resource_filesystem:EditorFileSystem"),&EditorPlugin::get_resource_file_system); - - ObjectTypeDB::bind_method(_MD("inspect_object","object","for_property"),&EditorPlugin::inspect_object,DEFVAL(String())); - ObjectTypeDB::bind_method(_MD("update_canvas"),&EditorPlugin::update_canvas); - - ObjectTypeDB::bind_method(_MD("make_bottom_panel_item_visible","item:Control"), &EditorPlugin::make_bottom_panel_item_visible); - ObjectTypeDB::bind_method(_MD("hide_bottom_panel"), &EditorPlugin::hide_bottom_panel); - - ObjectTypeDB::bind_method(_MD("get_base_control:Control"),&EditorPlugin::get_base_control); - ObjectTypeDB::bind_method(_MD("get_undo_redo:UndoRedo"),&EditorPlugin::_get_undo_redo); - ObjectTypeDB::bind_method(_MD("get_selection:EditorSelection"),&EditorPlugin::get_selection); - ObjectTypeDB::bind_method(_MD("get_editor_settings:EditorSettings"),&EditorPlugin::get_editor_settings); - ObjectTypeDB::bind_method(_MD("queue_save_layout"),&EditorPlugin::queue_save_layout); - - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"forward_canvas_input_event",PropertyInfo(Variant::MATRIX32,"canvas_xform"),PropertyInfo(Variant::INPUT_EVENT,"event"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("forward_draw_over_canvas",PropertyInfo(Variant::MATRIX32,"canvas_xform"),PropertyInfo(Variant::OBJECT,"canvas:Control"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"forward_spatial_input_event",PropertyInfo(Variant::OBJECT,"camera",PROPERTY_HINT_RESOURCE_TYPE,"Camera"),PropertyInfo(Variant::INPUT_EVENT,"event"))); + ClassDB::bind_method(_MD("add_control_to_container","container","control:Control"),&EditorPlugin::add_control_to_container); + ClassDB::bind_method(_MD("add_control_to_bottom_panel:ToolButton","control:Control","title"),&EditorPlugin::add_control_to_bottom_panel); + ClassDB::bind_method(_MD("add_control_to_dock","slot","control:Control"),&EditorPlugin::add_control_to_dock); + ClassDB::bind_method(_MD("remove_control_from_docks","control:Control"),&EditorPlugin::remove_control_from_docks); + ClassDB::bind_method(_MD("remove_control_from_bottom_panel","control:Control"),&EditorPlugin::remove_control_from_bottom_panel); + //ClassDB::bind_method(_MD("add_tool_menu_item", "name", "handler", "callback", "ud"),&EditorPlugin::add_tool_menu_item,DEFVAL(Variant())); + ClassDB::bind_method(_MD("add_tool_submenu_item", "name", "submenu:PopupMenu"),&EditorPlugin::add_tool_submenu_item); + //ClassDB::bind_method(_MD("remove_tool_menu_item", "name"),&EditorPlugin::remove_tool_menu_item); + ClassDB::bind_method(_MD("add_custom_type","type","base","script:Script","icon:Texture"),&EditorPlugin::add_custom_type); + ClassDB::bind_method(_MD("remove_custom_type","type"),&EditorPlugin::remove_custom_type); + ClassDB::bind_method(_MD("get_editor_viewport:Control"), &EditorPlugin::get_editor_viewport); + + ClassDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::add_import_plugin); + ClassDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::remove_import_plugin); + + ClassDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::add_export_plugin); + ClassDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::remove_export_plugin); + + ClassDB::bind_method(_MD("get_resource_previewer:EditorResourcePreview"),&EditorPlugin::get_resource_previewer); + ClassDB::bind_method(_MD("get_resource_filesystem:EditorFileSystem"),&EditorPlugin::get_resource_file_system); + + ClassDB::bind_method(_MD("inspect_object","object","for_property"),&EditorPlugin::inspect_object,DEFVAL(String())); + ClassDB::bind_method(_MD("update_canvas"),&EditorPlugin::update_canvas); + + ClassDB::bind_method(_MD("make_bottom_panel_item_visible","item:Control"), &EditorPlugin::make_bottom_panel_item_visible); + ClassDB::bind_method(_MD("hide_bottom_panel"), &EditorPlugin::hide_bottom_panel); + + ClassDB::bind_method(_MD("get_base_control:Control"),&EditorPlugin::get_base_control); + ClassDB::bind_method(_MD("get_undo_redo:UndoRedo"),&EditorPlugin::_get_undo_redo); + ClassDB::bind_method(_MD("get_selection:EditorSelection"),&EditorPlugin::get_selection); + ClassDB::bind_method(_MD("get_editor_settings:EditorSettings"),&EditorPlugin::get_editor_settings); + ClassDB::bind_method(_MD("queue_save_layout"),&EditorPlugin::queue_save_layout); + ClassDB::bind_method(_MD("edit_resource"),&EditorPlugin::edit_resource); + + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"forward_canvas_gui_input",PropertyInfo(Variant::TRANSFORM2D,"canvas_xform"),PropertyInfo(Variant::INPUT_EVENT,"event"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("forward_draw_over_canvas",PropertyInfo(Variant::TRANSFORM2D,"canvas_xform"),PropertyInfo(Variant::OBJECT,"canvas:Control"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"forward_spatial_gui_input",PropertyInfo(Variant::OBJECT,"camera",PROPERTY_HINT_RESOURCE_TYPE,"Camera"),PropertyInfo(Variant::INPUT_EVENT,"event"))); MethodInfo gizmo = MethodInfo(Variant::OBJECT,"create_spatial_gizmo",PropertyInfo(Variant::OBJECT,"for_spatial:Spatial")); gizmo.return_val.hint=PROPERTY_HINT_RESOURCE_TYPE; gizmo.return_val.hint_string="EditorSpatialGizmo"; - ObjectTypeDB::add_virtual_method(get_type_static(),gizmo); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING,"get_name")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"has_main_screen")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("make_visible",PropertyInfo(Variant::BOOL,"visible"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("edit",PropertyInfo(Variant::OBJECT,"object"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::OBJECT,"object"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::DICTIONARY,"get_state")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("set_state",PropertyInfo(Variant::DICTIONARY,"state"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("clear")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("save_external_data")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("apply_changes")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING_ARRAY,"get_breakpoints")); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("set_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("get_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile"))); + ClassDB::add_virtual_method(get_class_static(),gizmo); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::STRING,"get_name")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"has_main_screen")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("make_visible",PropertyInfo(Variant::BOOL,"visible"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("edit",PropertyInfo(Variant::OBJECT,"object"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::OBJECT,"object"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::DICTIONARY,"get_state")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("set_state",PropertyInfo(Variant::DICTIONARY,"state"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("clear")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("save_external_data")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("apply_changes")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::POOL_STRING_ARRAY,"get_breakpoints")); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("set_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo("get_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile"))); BIND_CONSTANT( CONTAINER_TOOLBAR ); BIND_CONSTANT( CONTAINER_SPATIAL_EDITOR_MENU ); diff --git a/tools/editor/editor_plugin.h b/tools/editor/editor_plugin.h index 2700c49a6c..928b096859 100644 --- a/tools/editor/editor_plugin.h +++ b/tools/editor/editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -53,7 +53,7 @@ class EditorFileSystem; class EditorPlugin : public Node { - OBJ_TYPE( EditorPlugin, Node ); + GDCLASS( EditorPlugin, Node ); friend class EditorData; UndoRedo *undo_redo; @@ -101,11 +101,16 @@ public: void remove_control_from_docks(Control *p_control); void remove_control_from_bottom_panel(Control *p_control); Control* get_editor_viewport(); + void edit_resource(const Ref<Resource>& p_resource); + + void add_tool_menu_item(const String& p_name, Object *p_handler, const String& p_callback, const Variant& p_ud = Variant()); + void add_tool_submenu_item(const String& p_name, Object *p_submenu); + void remove_tool_menu_item(const String& p_name); virtual Ref<SpatialEditorGizmo> create_spatial_gizmo(Spatial* p_spatial); - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform, const InputEvent& p_event); - virtual void forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control *p_canvas); - virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event); + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform, const InputEvent& p_event); + virtual void forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control *p_canvas); + virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event); virtual String get_name() const; virtual bool has_main_screen() const; virtual void make_visible(bool p_visible); diff --git a/tools/editor/editor_plugin_settings.cpp b/tools/editor/editor_plugin_settings.cpp index 5342007e6d..2b6828e82f 100644 --- a/tools/editor/editor_plugin_settings.cpp +++ b/tools/editor/editor_plugin_settings.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_plugin_settings.h" + #include "scene/gui/margin_container.h" #include "io/config_file.h" #include "os/file_access.h" @@ -81,7 +82,7 @@ void EditorPluginSettings::update_plugins() { plugins.sort(); - Vector<String> active_plugins = Globals::get_singleton()->get("plugins/active"); + Vector<String> active_plugins = GlobalConfig::get_singleton()->get("plugins/active"); for(int i=0;i<plugins.size();i++) { @@ -171,8 +172,8 @@ void EditorPluginSettings::_plugin_activity_changed() { void EditorPluginSettings::_bind_methods() { - ObjectTypeDB::bind_method("update_plugins",&EditorPluginSettings::update_plugins); - ObjectTypeDB::bind_method("_plugin_activity_changed",&EditorPluginSettings::_plugin_activity_changed); + ClassDB::bind_method("update_plugins",&EditorPluginSettings::update_plugins); + ClassDB::bind_method("_plugin_activity_changed",&EditorPluginSettings::_plugin_activity_changed); } EditorPluginSettings::EditorPluginSettings() { diff --git a/tools/editor/editor_plugin_settings.h b/tools/editor/editor_plugin_settings.h index 4a982e40e2..e24880a21d 100644 --- a/tools/editor/editor_plugin_settings.h +++ b/tools/editor/editor_plugin_settings.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ class EditorPluginSettings : public VBoxContainer { - OBJ_TYPE(EditorPluginSettings,VBoxContainer); + GDCLASS(EditorPluginSettings,VBoxContainer); Button* update_list; Tree *plugin_list; diff --git a/tools/editor/editor_profiler.cpp b/tools/editor/editor_profiler.cpp index 13327f0be9..94ec059ea7 100644 --- a/tools/editor/editor_profiler.cpp +++ b/tools/editor/editor_profiler.cpp @@ -1,4 +1,33 @@ +/*************************************************************************/ +/* editor_profiler.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "editor_profiler.h" + #include "editor_settings.h" #include "os/os.h" @@ -28,7 +57,7 @@ void EditorProfiler::add_frame_metric(const Metric& p_metric,bool p_final) { if (!seeking) { - cursor_metric_edit->set_val(frame_metrics[last_metric].frame_number); + cursor_metric_edit->set_value(frame_metrics[last_metric].frame_number); if (hover_metric!=-1) { hover_metric++; if (hover_metric>=frame_metrics.size()) { @@ -70,7 +99,7 @@ void EditorProfiler::clear() { updating_frame=true; cursor_metric_edit->set_min(0); cursor_metric_edit->set_max(0); - cursor_metric_edit->set_val(0); + cursor_metric_edit->set_value(0); updating_frame=false; hover_metric=-1; seeking=false; @@ -154,7 +183,7 @@ void EditorProfiler::_update_plot() { } - DVector<uint8_t>::Write wr = graph_image.write(); + PoolVector<uint8_t>::Write wr = graph_image.write(); @@ -336,9 +365,9 @@ void EditorProfiler::_update_plot() { } - wr = DVector<uint8_t>::Write(); + wr = PoolVector<uint8_t>::Write(); - Image img(w,h,0,Image::FORMAT_RGBA,graph_image); + Image img(w,h,0,Image::FORMAT_RGBA8,graph_image); if (reset_texture) { @@ -349,7 +378,7 @@ void EditorProfiler::_update_plot() { } - graph_texture->set_data(img);; + graph_texture->set_data(img); graph->set_texture(graph_texture); @@ -453,7 +482,7 @@ void EditorProfiler::_graph_tex_draw() { if (seeking) { int max_frames = frame_metrics.size(); - int frame = cursor_metric_edit->get_val() - (frame_metrics[last_metric].frame_number-max_frames+1); + int frame = cursor_metric_edit->get_value() - (frame_metrics[last_metric].frame_number-max_frames+1); if (frame<0) frame=0; @@ -559,7 +588,7 @@ void EditorProfiler::_graph_tex_input(const InputEvent& p_ev){ } if (valid) - cursor_metric_edit->set_val(frame_metrics[metric].frame_number); + cursor_metric_edit->set_value(frame_metrics[metric].frame_number); updating_frame=false; @@ -590,7 +619,7 @@ int EditorProfiler::_get_cursor_index() const { if (!frame_metrics[last_metric].valid) return 0; - int diff = (frame_metrics[last_metric].frame_number-cursor_metric_edit->get_val()); + int diff = (frame_metrics[last_metric].frame_number-cursor_metric_edit->get_value()); int idx = last_metric - diff; while (idx<0) { @@ -617,16 +646,16 @@ void EditorProfiler::_combo_changed(int) { void EditorProfiler::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_update_frame"),&EditorProfiler::_update_frame); - ObjectTypeDB::bind_method(_MD("_update_plot"),&EditorProfiler::_update_plot); - ObjectTypeDB::bind_method(_MD("_activate_pressed"),&EditorProfiler::_activate_pressed); - ObjectTypeDB::bind_method(_MD("_graph_tex_draw"),&EditorProfiler::_graph_tex_draw); - ObjectTypeDB::bind_method(_MD("_graph_tex_input"),&EditorProfiler::_graph_tex_input); - ObjectTypeDB::bind_method(_MD("_graph_tex_mouse_exit"),&EditorProfiler::_graph_tex_mouse_exit); - ObjectTypeDB::bind_method(_MD("_cursor_metric_changed"),&EditorProfiler::_cursor_metric_changed); - ObjectTypeDB::bind_method(_MD("_combo_changed"),&EditorProfiler::_combo_changed); + ClassDB::bind_method(_MD("_update_frame"),&EditorProfiler::_update_frame); + ClassDB::bind_method(_MD("_update_plot"),&EditorProfiler::_update_plot); + ClassDB::bind_method(_MD("_activate_pressed"),&EditorProfiler::_activate_pressed); + ClassDB::bind_method(_MD("_graph_tex_draw"),&EditorProfiler::_graph_tex_draw); + ClassDB::bind_method(_MD("_graph_tex_input"),&EditorProfiler::_graph_tex_input); + ClassDB::bind_method(_MD("_graph_tex_mouse_exit"),&EditorProfiler::_graph_tex_mouse_exit); + ClassDB::bind_method(_MD("_cursor_metric_changed"),&EditorProfiler::_cursor_metric_changed); + ClassDB::bind_method(_MD("_combo_changed"),&EditorProfiler::_combo_changed); - ObjectTypeDB::bind_method(_MD("_item_edited"),&EditorProfiler::_item_edited); + ClassDB::bind_method(_MD("_item_edited"),&EditorProfiler::_item_edited); ADD_SIGNAL( MethodInfo("enable_profiling",PropertyInfo(Variant::BOOL,"enable"))); ADD_SIGNAL( MethodInfo("break_request")); @@ -708,13 +737,13 @@ EditorProfiler::EditorProfiler() variables->connect("item_edited",this,"_item_edited"); - graph = memnew( TextureFrame ); + graph = memnew( TextureRect ); graph->set_expand(true); - graph->set_stop_mouse(true); - graph->set_ignore_mouse(false); + graph->set_mouse_filter(MOUSE_FILTER_STOP); + //graph->set_ignore_mouse(false); graph->connect("draw",this,"_graph_tex_draw"); - graph->connect("input_event",this,"_graph_tex_input"); - graph->connect("mouse_exit",this,"_graph_tex_mouse_exit"); + graph->connect("gui_input",this,"_graph_tex_input"); + graph->connect("mouse_exited",this,"_graph_tex_mouse_exit"); h_split->add_child(graph); graph->set_h_size_flags(SIZE_EXPAND_FILL); @@ -724,7 +753,7 @@ EditorProfiler::EditorProfiler() int metric_size=CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size",600)),60,1024); frame_metrics.resize(metric_size); last_metric=-1; -// cursor_metric=-1; + //cursor_metric=-1; hover_metric=-1; @@ -750,6 +779,6 @@ EditorProfiler::EditorProfiler() seeking=false; graph_height=1; -// activate->set_disabled(true); + //activate->set_disabled(true); } diff --git a/tools/editor/editor_profiler.h b/tools/editor/editor_profiler.h index f5cea118ce..bf89e3939c 100644 --- a/tools/editor/editor_profiler.h +++ b/tools/editor/editor_profiler.h @@ -1,9 +1,37 @@ +/*************************************************************************/ +/* editor_profiler.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef EDITORPROFILER_H #define EDITORPROFILER_H #include "scene/gui/box_container.h" -#include "scene/gui/texture_frame.h" +#include "scene/gui/texture_rect.h" #include "scene/gui/button.h" #include "scene/gui/label.h" #include "scene/gui/tree.h" @@ -14,7 +42,7 @@ class EditorProfiler : public VBoxContainer { - OBJ_TYPE(EditorProfiler,VBoxContainer) + GDCLASS(EditorProfiler,VBoxContainer) public: @@ -71,9 +99,9 @@ public: private: Button *activate; - TextureFrame *graph; + TextureRect *graph; Ref<ImageTexture> graph_texture; - DVector<uint8_t> graph_image; + PoolVector<uint8_t> graph_image; Tree *variables; HSplitContainer *h_split; diff --git a/tools/editor/editor_reimport_dialog.cpp b/tools/editor/editor_reimport_dialog.cpp index b6311a7604..e5ae33e919 100644 --- a/tools/editor/editor_reimport_dialog.cpp +++ b/tools/editor/editor_reimport_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,8 +27,10 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_reimport_dialog.h" + #include "editor_file_system.h" #include "editor_node.h" + void EditorReImportDialog::popup_reimport() { if (EditorFileSystem::get_singleton()->is_scanning()) { @@ -135,7 +137,7 @@ EditorReImportDialog::EditorReImportDialog() { tree = memnew( Tree ); add_child(tree); tree->set_hide_root(true); - set_child_rect(tree); + //set_child_rect(tree); set_title(TTR("Re-Import Changed Resources")); error = memnew( AcceptDialog); add_child(error); diff --git a/tools/editor/editor_reimport_dialog.h b/tools/editor/editor_reimport_dialog.h index 0c2d0eb52c..68e1ca0597 100644 --- a/tools/editor/editor_reimport_dialog.h +++ b/tools/editor/editor_reimport_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -34,7 +34,7 @@ class EditorReImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorReImportDialog,ConfirmationDialog); + GDCLASS(EditorReImportDialog,ConfirmationDialog); Tree *tree; Vector<TreeItem*> items; diff --git a/tools/editor/editor_resource_preview.cpp b/tools/editor/editor_resource_preview.cpp index 6afc3e2a34..b4c459a493 100644 --- a/tools/editor/editor_resource_preview.cpp +++ b/tools/editor/editor_resource_preview.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_resource_preview.h" + #include "editor_settings.h" #include "os/file_access.h" #include "io/resource_loader.h" @@ -69,9 +70,9 @@ Ref<Texture> EditorResourcePreviewGenerator::generate_from_path(const String& p_ void EditorResourcePreviewGenerator::_bind_methods() { - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::STRING,"type"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::OBJECT,"generate:Texture",PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"Resource"))); - ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::OBJECT,"generate_from_path:Texture",PropertyInfo(Variant::STRING,"path",PROPERTY_HINT_FILE))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::STRING,"type"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::OBJECT,"generate:Texture",PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"Resource"))); + ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::OBJECT,"generate_from_path:Texture",PropertyInfo(Variant::STRING,"path",PROPERTY_HINT_FILE))); } @@ -127,7 +128,7 @@ Ref<Texture> EditorResourcePreview::_generate_preview(const QueueItem& p_item,co String type; if (p_item.resource.is_valid()) - type=p_item.resource->get_type(); + type=p_item.resource->get_class(); else type=ResourceLoader::get_resource_type(p_item.path); //print_line("resource type is: "+type); @@ -154,7 +155,7 @@ Ref<Texture> EditorResourcePreview::_generate_preview(const QueueItem& p_item,co // cache the preview in case it's a resource on disk if (generated.is_valid()) { //print_line("was generated"); - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; //wow it generated a preview... save cache ResourceSaver::save(cache_base+".png",generated); @@ -207,7 +208,7 @@ void EditorResourcePreview::_thread() { //print_line("pop from queue "+item.path); - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; @@ -221,7 +222,7 @@ void EditorResourcePreview::_thread() { String temp_path=EditorSettings::get_singleton()->get_settings_path().plus_file("tmp"); - String cache_base = Globals::get_singleton()->globalize_path(item.path).md5_text(); + String cache_base = GlobalConfig::get_singleton()->globalize_path(item.path).md5_text(); cache_base = temp_path.plus_file("resthumb-"+cache_base); //does not have it, try to load a cached thumbnail @@ -267,6 +268,8 @@ void EditorResourcePreview::_thread() { memdelete(f); } + cache_valid=false; + if (cache_valid) { texture = ResourceLoader::load(cache_base+".png","ImageTexture",true); @@ -374,13 +377,13 @@ EditorResourcePreview* EditorResourcePreview::get_singleton() { void EditorResourcePreview::_bind_methods() { - ObjectTypeDB::bind_method("_preview_ready",&EditorResourcePreview::_preview_ready); + ClassDB::bind_method("_preview_ready",&EditorResourcePreview::_preview_ready); - ObjectTypeDB::bind_method(_MD("queue_resource_preview","path","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_resource_preview); - ObjectTypeDB::bind_method(_MD("queue_edited_resource_preview","resource:Resource","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_edited_resource_preview); - ObjectTypeDB::bind_method(_MD("add_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::add_preview_generator); - ObjectTypeDB::bind_method(_MD("remove_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::remove_preview_generator); - ObjectTypeDB::bind_method(_MD("check_for_invalidation","path"),&EditorResourcePreview::check_for_invalidation); + ClassDB::bind_method(_MD("queue_resource_preview","path","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_resource_preview); + ClassDB::bind_method(_MD("queue_edited_resource_preview","resource:Resource","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_edited_resource_preview); + ClassDB::bind_method(_MD("add_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::add_preview_generator); + ClassDB::bind_method(_MD("remove_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::remove_preview_generator); + ClassDB::bind_method(_MD("check_for_invalidation","path"),&EditorResourcePreview::check_for_invalidation); ADD_SIGNAL(MethodInfo("preview_invalidated",PropertyInfo(Variant::STRING,"path"))); diff --git a/tools/editor/editor_resource_preview.h b/tools/editor/editor_resource_preview.h index 2756360130..e4a593330d 100644 --- a/tools/editor/editor_resource_preview.h +++ b/tools/editor/editor_resource_preview.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -55,7 +55,7 @@ class EditorResourcePreviewGenerator : public Reference { - OBJ_TYPE(EditorResourcePreviewGenerator,Reference ); + GDCLASS(EditorResourcePreviewGenerator,Reference ); protected: @@ -72,7 +72,7 @@ public: class EditorResourcePreview : public Node { - OBJ_TYPE(EditorResourcePreview,Node); + GDCLASS(EditorResourcePreview,Node); static EditorResourcePreview* singleton; diff --git a/tools/editor/editor_run.cpp b/tools/editor/editor_run.cpp index 5fbb4ae2a0..813a8ee5b7 100644 --- a/tools/editor/editor_run.cpp +++ b/tools/editor/editor_run.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_run.h" + #include "globals.h" #include "editor_settings.h" @@ -39,7 +40,7 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List List<String> args; - String resource_path = Globals::get_singleton()->get_resource_path(); + String resource_path = GlobalConfig::get_singleton()->get_resource_path(); if (resource_path!="") { args.push_back("-path"); @@ -49,21 +50,12 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List if (true) { args.push_back("-rdebug"); - args.push_back("localhost:"+String::num(GLOBAL_DEF("debug/debug_port", 6007))); + args.push_back("localhost:"+String::num(GLOBAL_GET("network/debug/remote_port"))); } args.push_back("-epid"); args.push_back(String::num(OS::get_singleton()->get_process_ID())); - if (p_custom_args!="") { - - Vector<String> cargs=p_custom_args.split(" ",false); - for(int i=0;i<cargs.size();i++) { - - args.push_back(cargs[i].replace("%20"," ").replace("$scene",p_edited_scene.replace(" ","%20"))); - } - } - if (debug_collisions) { args.push_back("-debugcol"); } @@ -72,7 +64,7 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List args.push_back("-debugnav"); } - int screen = EditorSettings::get_singleton()->get("game_window_placement/screen"); + int screen = EditorSettings::get_singleton()->get("run/window_placement/screen"); if (screen==0) { screen=OS::get_singleton()->get_current_screen(); @@ -87,19 +79,19 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List Size2 desired_size; - desired_size.x=Globals::get_singleton()->get("display/width"); - desired_size.y=Globals::get_singleton()->get("display/height"); + desired_size.x=GlobalConfig::get_singleton()->get("display/width"); + desired_size.y=GlobalConfig::get_singleton()->get("display/height"); Size2 test_size; - test_size.x=Globals::get_singleton()->get("display/test_width"); - test_size.y=Globals::get_singleton()->get("display/test_height"); + test_size.x=GlobalConfig::get_singleton()->get("display/test_width"); + test_size.y=GlobalConfig::get_singleton()->get("display/test_height"); if (test_size.x>0 && test_size.y>0) { desired_size=test_size; } - int window_placement=EditorSettings::get_singleton()->get("game_window_placement/rect"); + int window_placement=EditorSettings::get_singleton()->get("run/window_placement/rect"); switch(window_placement) { case 0: { // default @@ -113,7 +105,7 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List args.push_back(itos(pos.x)+"x"+itos(pos.y)); } break; case 2: { // custom pos - Vector2 pos = EditorSettings::get_singleton()->get("game_window_placement/rect_custom_position"); + Vector2 pos = EditorSettings::get_singleton()->get("run/window_placement/rect_custom_position"); pos+=screen_rect.pos; args.push_back("-p"); args.push_back(itos(pos.x)+"x"+itos(pos.y)); @@ -150,7 +142,12 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List args.push_back(bpoints); } - args.push_back(p_scene); + if (p_custom_args!="") { + Vector<String> cargs=p_custom_args.split(" ",false); + for(int i=0;i<cargs.size();i++) { + args.push_back(cargs[i].replace("$scene",p_scene).replace(" ","%20")); + } + } String exec = OS::get_singleton()->get_executable_path(); diff --git a/tools/editor/editor_run.h b/tools/editor/editor_run.h index 5aa2adf801..78fa892488 100644 --- a/tools/editor/editor_run.h +++ b/tools/editor/editor_run.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/editor_run_native.cpp b/tools/editor/editor_run_native.cpp index edbcc71284..12b7b761ed 100644 --- a/tools/editor/editor_run_native.cpp +++ b/tools/editor/editor_run_native.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,8 +27,8 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_run_native.h" -#include "editor_import_export.h" +#include "editor_import_export.h" void EditorRunNative::_notification(int p_what) { @@ -54,7 +54,8 @@ void EditorRunNative::_notification(int p_what) { Ref<ImageTexture> small_icon = memnew( ImageTexture); small_icon->create_from_image(im); MenuButton *mb = memnew( MenuButton ); - mb->get_popup()->connect("item_pressed",this,"_run_native",varray(E->get())); + mb->get_popup()->connect("id_pressed",this,"_run_native",varray(E->get())); + mb->connect("pressed",this,"_run_native",varray(-1, E->get())); mb->set_icon(small_icon); add_child(mb); menus[E->get()]=mb; @@ -79,13 +80,16 @@ void EditorRunNative::_notification(int p_what) { if (dc==0) { mb->hide(); } else { - mb->get_popup()->clear(); mb->show(); - for(int i=0;i<dc;i++) { - - mb->get_popup()->add_icon_item(get_icon("Play","EditorIcons"),eep->get_device_name(i)); - mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() -1,eep->get_device_info(i)); + if (dc == 1) { + mb->set_tooltip(eep->get_device_name(0) + "\n\n" + eep->get_device_info(0).strip_edges()); + } else { + mb->set_tooltip("Select device from the list"); + for(int i=0;i<dc;i++) { + mb->get_popup()->add_icon_item(get_icon("Play","EditorIcons"),eep->get_device_name(i)); + mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() -1,eep->get_device_info(i).strip_edges()); + } } } } @@ -96,11 +100,18 @@ void EditorRunNative::_notification(int p_what) { } - void EditorRunNative::_run_native(int p_idx,const String& p_platform) { Ref<EditorExportPlatform> eep = EditorImportExport::get_singleton()->get_export_platform(p_platform); ERR_FAIL_COND(eep.is_null()); + if (p_idx == -1) { + if (eep->get_device_count() == 1) { + menus[p_platform]->get_popup()->hide(); + p_idx = 0; + } else { + return; + } + } emit_signal("native_run"); int flags=0; @@ -118,7 +129,7 @@ void EditorRunNative::_run_native(int p_idx,const String& p_platform) { void EditorRunNative::_bind_methods() { - ObjectTypeDB::bind_method("_run_native",&EditorRunNative::_run_native); + ClassDB::bind_method("_run_native",&EditorRunNative::_run_native); ADD_SIGNAL(MethodInfo("native_run")); } diff --git a/tools/editor/editor_run_native.h b/tools/editor/editor_run_native.h index 04dad6b6aa..c62021148b 100644 --- a/tools/editor/editor_run_native.h +++ b/tools/editor/editor_run_native.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -34,7 +34,7 @@ class EditorRunNative : public HBoxContainer { - OBJ_TYPE(EditorRunNative,BoxContainer); + GDCLASS(EditorRunNative,BoxContainer); Map<StringName,MenuButton*> menus; bool first; diff --git a/tools/editor/editor_run_script.cpp b/tools/editor/editor_run_script.cpp index 765f36d3bc..6a980019e4 100644 --- a/tools/editor/editor_run_script.cpp +++ b/tools/editor/editor_run_script.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,11 +27,8 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_run_script.h" -#include "editor_node.h" - - - +#include "editor_node.h" void EditorScript::add_root_node(Node *p_node) { @@ -46,7 +43,7 @@ void EditorScript::add_root_node(Node *p_node) { return; } -// editor->set_edited_scene(p_node); + //editor->set_edited_scene(p_node); } Node *EditorScript::get_scene() { @@ -86,8 +83,8 @@ void EditorScript::set_editor(EditorNode *p_editor) { void EditorScript::_bind_methods() { - ObjectTypeDB::bind_method(_MD("add_root_node","node"),&EditorScript::add_root_node); - ObjectTypeDB::bind_method(_MD("get_scene"),&EditorScript::get_scene); + ClassDB::bind_method(_MD("add_root_node","node"),&EditorScript::add_root_node); + ClassDB::bind_method(_MD("get_scene"),&EditorScript::get_scene); BIND_VMETHOD( MethodInfo("_run") ); diff --git a/tools/editor/editor_run_script.h b/tools/editor/editor_run_script.h index 144fad5ab1..3ab8525cc6 100644 --- a/tools/editor/editor_run_script.h +++ b/tools/editor/editor_run_script.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,7 +35,7 @@ class EditorNode; class EditorScript : public Reference { - OBJ_TYPE( EditorScript, Reference ); + GDCLASS( EditorScript, Reference ); EditorNode *editor; protected: diff --git a/tools/editor/editor_scale.cpp b/tools/editor/editor_scale.cpp index 8575e1c30a..5687f97b22 100644 --- a/tools/editor/editor_scale.cpp +++ b/tools/editor/editor_scale.cpp @@ -1,4 +1,33 @@ +/*************************************************************************/ +/* editor_scale.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "editor_scale.h" + #include "os/os.h" static float scale = 1.0; diff --git a/tools/editor/editor_scale.h b/tools/editor/editor_scale.h index 90e575f771..035a5056c1 100644 --- a/tools/editor/editor_scale.h +++ b/tools/editor/editor_scale.h @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* editor_scale.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef EDITOR_SCALE_H #define EDITOR_SCALE_H diff --git a/tools/editor/editor_settings.cpp b/tools/editor/editor_settings.cpp index 78bfd7cf25..27aeaeb5b6 100644 --- a/tools/editor/editor_settings.cpp +++ b/tools/editor/editor_settings.cpp @@ -3,9 +3,9 @@ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ -/* http://www.godotengine.org */ +/* http:/www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,13 +27,12 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_settings.h" + #include "os/os.h" #include "os/dir_access.h" #include "os/file_access.h" - #include "version.h" #include "scene/main/scene_main_loop.h" -#include "os/os.h" #include "scene/main/node.h" #include "io/resource_loader.h" #include "io/resource_saver.h" @@ -47,6 +46,9 @@ #include "io/compression.h" #include "os/keyboard.h" + + + Ref<EditorSettings> EditorSettings::singleton=NULL; EditorSettings *EditorSettings::get_singleton() { @@ -123,8 +125,10 @@ bool EditorSettings::_get(const StringName& p_name,Variant &r_ret) const { } const VariantContainer *v=props.getptr(p_name); - if (!v) + if (!v) { + print_line("EditorSettings::_get - Warning, not found: "+String(p_name)); return false; + } r_ret = v->variant; return true; } @@ -238,6 +242,7 @@ void EditorSettings::create() { String exe_path = OS::get_singleton()->get_executable_path().get_base_dir(); DirAccess* d = DirAccess::create_for_path(exe_path); + if (d->file_exists(exe_path + "/._sc_")) { // editor is self contained @@ -257,7 +262,7 @@ void EditorSettings::create() { } }; - ObjectTypeDB::register_type<EditorSettings>(); //otherwise it can't be unserialized + ClassDB::register_class<EditorSettings>(); //otherwise it can't be unserialized String config_file_path; if (config_path!=""){ @@ -307,7 +312,7 @@ void EditorSettings::create() { dir->change_dir("config"); - String pcp=Globals::get_singleton()->get_resource_path(); + String pcp=GlobalConfig::get_singleton()->get_resource_path(); if (pcp.ends_with("/")) pcp=config_path.substr(0,pcp.size()-1); pcp=pcp.get_file()+"-"+pcp.md5_text(); @@ -322,21 +327,14 @@ void EditorSettings::create() { // path at least is validated, so validate config file - - config_file_path = config_path+"/"+config_dir+"/editor_settings.tres"; + String config_file_name = "editor_settings-" + String(_MKSTR(VERSION_MAJOR)) + ".tres"; + config_file_path = config_path + "/" + config_dir + "/" + config_file_name; String open_path = config_file_path; - if (!dir->file_exists("editor_settings.tres")) { - - open_path = config_path+"/"+config_dir+"/editor_settings.xml"; + if (!dir->file_exists(config_file_name)) { - if (!dir->file_exists("editor_settings.xml")) { - - memdelete(dir); - WARN_PRINT("Config file does not exist, creating."); - goto fail; - } + goto fail; } memdelete(dir); @@ -402,9 +400,9 @@ String EditorSettings::get_settings_path() const { void EditorSettings::setup_language() { - String lang = get("global/editor_language"); + String lang = get("interface/editor_language"); if (lang=="en") - return; //none to do + return;//none to do for(int i=0;i<translations.size();i++) { if (translations[i]->get_locale()==lang) { @@ -506,158 +504,159 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { best="en"; } - set("global/editor_language",best); - hints["global/editor_language"]=PropertyInfo(Variant::STRING,"global/editor_language",PROPERTY_HINT_ENUM,lang_hint,PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); + set("interface/editor_language",best); + hints["interface/editor_language"]=PropertyInfo(Variant::STRING,"interface/editor_language",PROPERTY_HINT_ENUM,lang_hint,PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); } - set("global/hidpi_mode",0); - hints["global/hidpi_mode"]=PropertyInfo(Variant::INT,"global/hidpi_mode",PROPERTY_HINT_ENUM,"Auto,VeryLoDPI,LoDPI,MidDPI,HiDPI",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); - set("global/show_script_in_scene_tabs",false); - set("global/font_size",14); - hints["global/font_size"]=PropertyInfo(Variant::INT,"global/font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); - set("global/source_font_size",14); - hints["global/source_font_size"]=PropertyInfo(Variant::INT,"global/source_font_size",PROPERTY_HINT_RANGE,"8,96,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); - set("global/custom_font",""); - hints["global/custom_font"]=PropertyInfo(Variant::STRING,"global/custom_font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); - set("global/custom_theme",""); - hints["global/custom_theme"]=PropertyInfo(Variant::STRING,"global/custom_theme",PROPERTY_HINT_GLOBAL_FILE,"*.res,*.tres,*.theme",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); - - - set("global/autoscan_project_path",""); - hints["global/autoscan_project_path"]=PropertyInfo(Variant::STRING,"global/autoscan_project_path",PROPERTY_HINT_GLOBAL_DIR); - set("global/default_project_path",""); - hints["global/default_project_path"]=PropertyInfo(Variant::STRING,"global/default_project_path",PROPERTY_HINT_GLOBAL_DIR); - set("global/default_project_export_path",""); + set("interface/hidpi_mode",0); + hints["interface/hidpi_mode"]=PropertyInfo(Variant::INT,"interface/hidpi_mode",PROPERTY_HINT_ENUM,"Auto,VeryLoDPI,LoDPI,MidDPI,HiDPI",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); + set("interface/show_script_in_scene_tabs",false); + set("interface/font_size",14); + hints["interface/font_size"]=PropertyInfo(Variant::INT,"interface/font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); + set("interface/source_font_size",14); + hints["interface/source_font_size"]=PropertyInfo(Variant::INT,"interface/source_font_size",PROPERTY_HINT_RANGE,"8,96,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); + set("interface/custom_font",""); + hints["interface/custom_font"]=PropertyInfo(Variant::STRING,"interface/custom_font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); + set("interface/custom_theme",""); + hints["interface/custom_theme"]=PropertyInfo(Variant::STRING,"interface/custom_theme",PROPERTY_HINT_GLOBAL_FILE,"*.res,*.tres,*.theme",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); + + + set("filesystem/directories/autoscan_project_path",""); + hints["filesystem/directories/autoscan_project_path"]=PropertyInfo(Variant::STRING,"filesystem/directories/autoscan_project_path",PROPERTY_HINT_GLOBAL_DIR); + set("filesystem/directories/default_project_path",""); + hints["filesystem/directories/default_project_path"]=PropertyInfo(Variant::STRING,"filesystem/directories/default_project_path",PROPERTY_HINT_GLOBAL_DIR); + set("filesystem/directories/default_project_export_path",""); hints["global/default_project_export_path"]=PropertyInfo(Variant::STRING,"global/default_project_export_path",PROPERTY_HINT_GLOBAL_DIR); - set("global/show_script_in_scene_tabs",false); - + set("interface/show_script_in_scene_tabs",false); - set("text_editor/color_theme","Default"); - hints["text_editor/color_theme"]=PropertyInfo(Variant::STRING,"text_editor/color_theme",PROPERTY_HINT_ENUM,"Default"); - _load_default_text_editor_theme(); - - set("text_editor/syntax_highlighting", true); - - set("text_editor/highlight_all_occurrences", true); - set("text_editor/scroll_past_end_of_file", false); - - set("text_editor/tab_size", 4); - hints["text_editor/tab_size"]=PropertyInfo(Variant::INT,"text_editor/tab_size",PROPERTY_HINT_RANGE,"1, 64, 1"); // size of 0 crashes. - set("text_editor/draw_tabs", true); - - set("text_editor/line_numbers_zero_padded", false); - - set("text_editor/show_line_numbers", true); - set("text_editor/show_breakpoint_gutter", true); - - set("text_editor/show_line_length_guideline", false); - set("text_editor/line_length_guideline_column", 80); - hints["text_editor/line_length_guideline_column"]=PropertyInfo(Variant::INT,"text_editor/line_length_guideline_column",PROPERTY_HINT_RANGE,"20, 160, 10"); - - set("text_editor/trim_trailing_whitespace_on_save", false); - set("text_editor/idle_parse_delay",2); - set("text_editor/create_signal_callbacks",true); - set("text_editor/autosave_interval_secs",0); + set("text_editor/theme/color_theme","Default"); + hints["text_editor/theme/color_theme"]=PropertyInfo(Variant::STRING,"text_editor/theme/color_theme",PROPERTY_HINT_ENUM,"Default"); - set("text_editor/block_caret", false); - set("text_editor/caret_blink", false); - set("text_editor/caret_blink_speed", 0.65); - hints["text_editor/caret_blink_speed"]=PropertyInfo(Variant::REAL,"text_editor/caret_blink_speed",PROPERTY_HINT_RANGE,"0.1, 10, 0.1"); + set("text_editor/theme/line_spacing",4); - set("text_editor/font",""); - hints["text_editor/font"]=PropertyInfo(Variant::STRING,"text_editor/font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt"); - set("text_editor/auto_brace_complete", false); - set("text_editor/restore_scripts_on_load",true); + _load_default_text_editor_theme(); - //set("scenetree_editor/display_old_action_buttons",false); - set("scenetree_editor/start_create_dialog_fully_expanded",false); - set("scenetree_editor/draw_relationship_lines",false); - set("scenetree_editor/relationship_line_color",Color::html("464646")); - - set("grid_map/pick_distance", 5000.0); - - set("3d_editor/grid_color",Color(0,1,0,0.2)); - hints["3d_editor/grid_color"]=PropertyInfo(Variant::COLOR,"3d_editor/grid_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); - - set("3d_editor/default_fov",45.0); - set("3d_editor/default_z_near",0.1); - set("3d_editor/default_z_far",500.0); - - set("3d_editor/navigation_scheme",0); - hints["3d_editor/navigation_scheme"]=PropertyInfo(Variant::INT,"3d_editor/navigation_scheme",PROPERTY_HINT_ENUM,"Godot,Maya,Modo"); - set("3d_editor/zoom_style",0); - hints["3d_editor/zoom_style"]=PropertyInfo(Variant::INT,"3d_editor/zoom_style",PROPERTY_HINT_ENUM,"Vertical, Horizontal"); - set("3d_editor/orbit_modifier",0); - hints["3d_editor/orbit_modifier"]=PropertyInfo(Variant::INT,"3d_editor/orbit_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl"); - set("3d_editor/pan_modifier",1); - hints["3d_editor/pan_modifier"]=PropertyInfo(Variant::INT,"3d_editor/pan_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl"); - set("3d_editor/zoom_modifier",4); - hints["3d_editor/zoom_modifier"]=PropertyInfo(Variant::INT,"3d_editor/zoom_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl"); - set("3d_editor/emulate_numpad",false); - set("3d_editor/emulate_3_button_mouse", false); - - set("2d_editor/bone_width",5); - set("2d_editor/bone_color1",Color(1.0,1.0,1.0,0.9)); - set("2d_editor/bone_color2",Color(0.75,0.75,0.75,0.9)); - set("2d_editor/bone_selected_color",Color(0.9,0.45,0.45,0.9)); - set("2d_editor/bone_ik_color",Color(0.9,0.9,0.45,0.9)); - - set("2d_editor/keep_margins_when_changing_anchors", false); - - set("game_window_placement/rect",0); - hints["game_window_placement/rect"]=PropertyInfo(Variant::INT,"game_window_placement/rect",PROPERTY_HINT_ENUM,"Default,Centered,Custom Position,Force Maximized,Force Full Screen"); + set("text_editor/highlighting/syntax_highlighting", true); + + set("text_editor/highlighting/highlight_all_occurrences", true); + set("text_editor/cursor/scroll_past_end_of_file", false); + + set("text_editor/indent/tab_size", 4); + hints["text_editor/indent/tab_size"]=PropertyInfo(Variant::INT,"text_editor/indent/tab_size",PROPERTY_HINT_RANGE,"1, 64, 1"); // size of 0 crashes. + set("text_editor/indent/draw_tabs", true); + + set("text_editor/line_numbers/show_line_numbers", true); + set("text_editor/line_numbers/line_numbers_zero_padded", false); + set("text_editor/line_numbers/show_breakpoint_gutter", true); + set("text_editor/line_numbers/show_line_length_guideline", false); + set("text_editor/line_numbers/line_length_guideline_column", 80); + hints["text_editor/line_numbers/line_length_guideline_column"]=PropertyInfo(Variant::INT,"text_editor/line_numbers/line_length_guideline_column",PROPERTY_HINT_RANGE,"20, 160, 10"); + + set("text_editor/files/trim_trailing_whitespace_on_save", false); + set("text_editor/completion/idle_parse_delay",2); + set("text_editor/tools/create_signal_callbacks",true); + set("text_editor/files/autosave_interval_secs",0); + + set("text_editor/cursor/block_caret", false); + set("text_editor/cursor/caret_blink", false); + set("text_editor/cursor/caret_blink_speed", 0.65); + hints["text_editor/cursor/caret_blink_speed"]=PropertyInfo(Variant::REAL,"text_editor/cursor/caret_blink_speed",PROPERTY_HINT_RANGE,"0.1, 10, 0.1"); + + set("text_editor/theme/font",""); + hints["text_editor/theme/font"]=PropertyInfo(Variant::STRING,"text_editor/theme/font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt"); + set("text_editor/completion/auto_brace_complete", false); + set("text_editor/files/restore_scripts_on_load",true); + + + //set("docks/scene_tree/display_old_action_buttons",false); + set("docks/scene_tree/start_create_dialog_fully_expanded",false); + set("docks/scene_tree/draw_relationship_lines",false); + set("docks/scene_tree/relationship_line_color",Color::html("464646")); + + set("editors/grid_map/pick_distance", 5000.0); + + set("editors/3d/grid_color",Color(0,1,0,0.2)); + hints["editors/3d/grid_color"]=PropertyInfo(Variant::COLOR,"editors/3d/grid_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED); + + set("editors/3d/default_fov",45.0); + set("editors/3d/default_z_near",0.1); + set("editors/3d/default_z_far",500.0); + + set("editors/3d/navigation_scheme",0); + hints["editors/3d/navigation_scheme"]=PropertyInfo(Variant::INT,"editors/3d/navigation_scheme",PROPERTY_HINT_ENUM,"Godot,Maya,Modo"); + set("editors/3d/zoom_style",0); + hints["editors/3d/zoom_style"]=PropertyInfo(Variant::INT,"editors/3d/zoom_style",PROPERTY_HINT_ENUM,"Vertical, Horizontal"); + set("editors/3d/orbit_modifier",0); + hints["editors/3d/orbit_modifier"]=PropertyInfo(Variant::INT,"editors/3d/orbit_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl"); + set("editors/3d/pan_modifier",1); + hints["editors/3d/pan_modifier"]=PropertyInfo(Variant::INT,"editors/3d/pan_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl"); + set("editors/3d/zoom_modifier",4); + hints["editors/3d/zoom_modifier"]=PropertyInfo(Variant::INT,"editors/3d/zoom_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl"); + set("editors/3d/emulate_numpad",false); + set("editors/3d/emulate_3_button_mouse", false); + + set("editors/2d/bone_width",5); + set("editors/2d/bone_color1",Color(1.0,1.0,1.0,0.9)); + set("editors/2d/bone_color2",Color(0.75,0.75,0.75,0.9)); + set("editors/2d/bone_selected_color",Color(0.9,0.45,0.45,0.9)); + set("editors/2d/bone_ik_color",Color(0.9,0.9,0.45,0.9)); + + set("editors/2d/keep_margins_when_changing_anchors", false); + + set("run/window_placement/rect",0); + hints["run/window_placement/rect"]=PropertyInfo(Variant::INT,"run/window_placement/rect",PROPERTY_HINT_ENUM,"Default,Centered,Custom Position,Force Maximized,Force Full Screen"); String screen_hints=TTR("Default (Same as Editor)"); for(int i=0;i<OS::get_singleton()->get_screen_count();i++) { screen_hints+=",Monitor "+itos(i+1); } - set("game_window_placement/rect_custom_position",Vector2()); - set("game_window_placement/screen",0); - hints["game_window_placement/screen"]=PropertyInfo(Variant::INT,"game_window_placement/screen",PROPERTY_HINT_ENUM,screen_hints); + set("run/window_placement/rect_custom_position",Vector2()); + set("run/window_placement/screen",0); + hints["run/window_placement/screen"]=PropertyInfo(Variant::INT,"run/window_placement/screen",PROPERTY_HINT_ENUM,screen_hints); - set("on_save/compress_binary_resources",true); - set("on_save/save_modified_external_resources",true); - //set("on_save/save_paths_as_relative",false); - //set("on_save/save_paths_without_extension",false); + set("filesystem/on_save/compress_binary_resources",true); + set("filesystem/on_save/save_modified_external_resources",true); + //set("filesystem/on_save/save_paths_as_relative",false); + //set("filesystem/on_save/save_paths_without_extension",false); - set("text_editor/create_signal_callbacks",true); + set("text_editor/tools/create_signal_callbacks",true); - set("file_dialog/show_hidden_files", false); - set("file_dialog/display_mode", 0); - hints["file_dialog/display_mode"]=PropertyInfo(Variant::INT,"file_dialog/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List"); - set("file_dialog/thumbnail_size", 64); - hints["file_dialog/thumbnail_size"]=PropertyInfo(Variant::INT,"file_dialog/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16"); + set("filesystem/file_dialog/show_hidden_files", false); + set("filesystem/file_dialog/display_mode", 0); + hints["filesystem/file_dialog/display_mode"]=PropertyInfo(Variant::INT,"filesystem/file_dialog/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List"); + set("filesystem/file_dialog/thumbnail_size", 64); + hints["filesystem/file_dialog/thumbnail_size"]=PropertyInfo(Variant::INT,"filesystem/file_dialog/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16"); - set("filesystem_dock/display_mode", 0); - hints["filesystem_dock/display_mode"]=PropertyInfo(Variant::INT,"filesystem_dock/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List"); - set("filesystem_dock/thumbnail_size", 64); - hints["filesystem_dock/thumbnail_size"]=PropertyInfo(Variant::INT,"filesystem_dock/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16"); + set("docks/filesystem/display_mode", 0); + hints["docks/filesystem/display_mode"]=PropertyInfo(Variant::INT,"docks/filesystem/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List"); + set("docks/filesystem/thumbnail_size", 64); + hints["docks/filesystem/thumbnail_size"]=PropertyInfo(Variant::INT,"docks/filesystem/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16"); - set("animation/autorename_animation_tracks",true); - set("animation/confirm_insert_track",true); + set("editors/animation/autorename_animation_tracks",true); + set("editors/animation/confirm_insert_track",true); - set("property_editor/texture_preview_width",48); - set("property_editor/auto_refresh_interval",0.3); - set("help/doc_path",""); + set("docks/property_editor/texture_preview_width",48); + set("docks/property_editor/auto_refresh_interval",0.3); + set("text_editor/help/doc_path",""); - set("import/ask_save_before_reimport",false); + set("filesystem/import/ask_save_before_reimport",false); - set("import/pvrtc_texture_tool",""); + set("filesystem/import/pvrtc_texture_tool",""); #ifdef WINDOWS_ENABLED - hints["import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,"*.exe"); + hints["filesystem/import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,"*.exe"); #else hints["import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,""); #endif - // TODO: Rename to "import/pvrtc_fast_conversion" to match other names? - set("PVRTC/fast_conversion",false); + // TODO: Rename to "filesystem/import/pvrtc_fast_conversion" to match other names? + set("filesystem/import/pvrtc_fast_conversion",false); - set("run/auto_save_before_running",true); - set("resources/save_compressed_resources",true); - set("resources/auto_reload_modified_images",true); + set("run/auto_save/save_before_running",true); + set("filesystem/resources/save_compressed_resources",true); + set("filesystem/resources/auto_reload_modified_images",true); - set("import/automatic_reimport_on_sources_changed",true); + set("filesystem/import/automatic_reimport_on_sources_changed",true); if (p_extra_config.is_valid()) { @@ -691,34 +690,34 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { } void EditorSettings::_load_default_text_editor_theme() { - set("text_editor/background_color",Color::html("3b000000")); - set("text_editor/completion_background_color", Color::html("2C2A32")); - set("text_editor/completion_selected_color", Color::html("434244")); - set("text_editor/completion_existing_color", Color::html("21dfdfdf")); - set("text_editor/completion_scroll_color", Color::html("ffffff")); - set("text_editor/completion_font_color", Color::html("aaaaaa")); - set("text_editor/caret_color",Color::html("aaaaaa")); - set("text_editor/caret_background_color", Color::html("000000")); - set("text_editor/line_number_color",Color::html("66aaaaaa")); - set("text_editor/text_color",Color::html("aaaaaa")); - set("text_editor/text_selected_color",Color::html("000000")); - set("text_editor/keyword_color",Color::html("ffffb3")); - set("text_editor/base_type_color",Color::html("a4ffd4")); - set("text_editor/engine_type_color",Color::html("83d3ff")); - set("text_editor/function_color",Color::html("66a2ce")); - set("text_editor/member_variable_color",Color::html("e64e59")); - set("text_editor/comment_color",Color::html("676767")); - set("text_editor/string_color",Color::html("ef6ebe")); - set("text_editor/number_color",Color::html("EB9532")); - set("text_editor/symbol_color",Color::html("badfff")); - set("text_editor/selection_color",Color::html("7b5dbe")); - set("text_editor/brace_mismatch_color",Color(1,0.2,0.2)); - set("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15)); - set("text_editor/mark_color", Color(1.0,0.4,0.4,0.4)); - set("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2)); - set("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15)); - set("text_editor/search_result_color",Color(0.05,0.25,0.05,1)); - set("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1)); + set("text_editor/highlighting/background_color",Color::html("3b000000")); + set("text_editor/highlighting/completion_background_color", Color::html("2C2A32")); + set("text_editor/highlighting/completion_selected_color", Color::html("434244")); + set("text_editor/highlighting/completion_existing_color", Color::html("21dfdfdf")); + set("text_editor/highlighting/completion_scroll_color", Color::html("ffffff")); + set("text_editor/highlighting/completion_font_color", Color::html("aaaaaa")); + set("text_editor/highlighting/caret_color",Color::html("aaaaaa")); + set("text_editor/highlighting/caret_background_color", Color::html("000000")); + set("text_editor/highlighting/line_number_color",Color::html("66aaaaaa")); + set("text_editor/highlighting/text_color",Color::html("aaaaaa")); + set("text_editor/highlighting/text_selected_color",Color::html("000000")); + set("text_editor/highlighting/keyword_color",Color::html("ffffb3")); + set("text_editor/highlighting/base_type_color",Color::html("a4ffd4")); + set("text_editor/highlighting/engine_type_color",Color::html("83d3ff")); + set("text_editor/highlighting/function_color",Color::html("66a2ce")); + set("text_editor/highlighting/member_variable_color",Color::html("e64e59")); + set("text_editor/highlighting/comment_color",Color::html("676767")); + set("text_editor/highlighting/string_color",Color::html("ef6ebe")); + set("text_editor/highlighting/number_color",Color::html("EB9532")); + set("text_editor/highlighting/symbol_color",Color::html("badfff")); + set("text_editor/highlighting/selection_color",Color::html("7b5dbe")); + set("text_editor/highlighting/brace_mismatch_color",Color(1,0.2,0.2)); + set("text_editor/highlighting/current_line_color",Color(0.3,0.5,0.8,0.15)); + set("text_editor/highlighting/mark_color", Color(1.0,0.4,0.4,0.4)); + set("text_editor/highlighting/breakpoint_color", Color(0.8,0.8,0.4,0.2)); + set("text_editor/highlighting/word_highlighted_color",Color(0.8,0.9,0.9,0.15)); + set("text_editor/highlighting/search_result_color",Color(0.05,0.25,0.05,1)); + set("text_editor/highlighting/search_result_border_color",Color(0.1,0.45,0.1,1)); } void EditorSettings::notify_changes() { @@ -846,24 +845,24 @@ void EditorSettings::list_text_editor_themes() { d->list_dir_begin(); String file = d->get_next(); while(file != String()) { - if (file.extension() == "tet" && file.basename().to_lower() != "default") { - themes += "," + file.basename(); + if (file.get_extension() == "tet" && file.get_basename().to_lower() != "default") { + themes += "," + file.get_basename(); } file = d->get_next(); } d->list_dir_end(); memdelete(d); } - add_property_hint(PropertyInfo(Variant::STRING,"text_editor/color_theme",PROPERTY_HINT_ENUM,themes)); + add_property_hint(PropertyInfo(Variant::STRING,"text_editor/theme/color_theme",PROPERTY_HINT_ENUM,themes)); } void EditorSettings::load_text_editor_theme() { - if (get("text_editor/color_theme") == "Default") { + if (get("text_editor/theme/color_theme") == "Default") { _load_default_text_editor_theme(); // sorry for "Settings changed" console spam return; } - String theme_path = get_settings_path() + "/text_editor_themes/" + get("text_editor/color_theme") + ".tet"; + String theme_path = get_settings_path() + "/text_editor_themes/" + get("text_editor/theme/color_theme") + ".tet"; Ref<ConfigFile> cf = memnew( ConfigFile ); Error err = cf->load(theme_path); @@ -880,11 +879,11 @@ void EditorSettings::load_text_editor_theme() { String val = cf->get_value("color_theme", key); // don't load if it's not already there! - if (has("text_editor/" + key)) { + if (has("text_editor/highlighting/" + key)) { // make sure it is actually a color if (val.is_valid_html_color() && key.find("color") >= 0) { - props["text_editor/"+key].variant = Color::html(val); // change manually to prevent "Settings changed" console spam + props["text_editor/highlighting/"+key].variant = Color::html(val); // change manually to prevent "Settings changed" console spam } } } @@ -913,7 +912,7 @@ bool EditorSettings::import_text_editor_theme(String p_file) { bool EditorSettings::save_text_editor_theme() { - String p_file = get("text_editor/color_theme"); + String p_file = get("text_editor/theme/color_theme"); if (p_file.get_file().to_lower() == "default") { return false; @@ -937,7 +936,7 @@ bool EditorSettings::save_text_editor_theme_as(String p_file) { String theme_name = p_file.substr(0, p_file.length() - 4).get_file(); if (p_file.get_base_dir() == get_settings_path() + "/text_editor_themes") { - set("text_editor/color_theme", theme_name); + set("text_editor/theme/color_theme", theme_name); load_text_editor_theme(); } return true; @@ -948,34 +947,34 @@ bool EditorSettings::save_text_editor_theme_as(String p_file) { bool EditorSettings::_save_text_editor_theme(String p_file) { String theme_section = "color_theme"; Ref<ConfigFile> cf = memnew( ConfigFile ); // hex is better? - cf->set_value(theme_section, "background_color", ((Color)get("text_editor/background_color")).to_html()); - cf->set_value(theme_section, "completion_background_color", ((Color)get("text_editor/completion_background_color")).to_html()); - cf->set_value(theme_section, "completion_selected_color", ((Color)get("text_editor/completion_selected_color")).to_html()); - cf->set_value(theme_section, "completion_existing_color", ((Color)get("text_editor/completion_existing_color")).to_html()); - cf->set_value(theme_section, "completion_scroll_color", ((Color)get("text_editor/completion_scroll_color")).to_html()); - cf->set_value(theme_section, "completion_font_color", ((Color)get("text_editor/completion_font_color")).to_html()); - cf->set_value(theme_section, "caret_color", ((Color)get("text_editor/caret_color")).to_html()); - cf->set_value(theme_section, "caret_background_color", ((Color)get("text_editor/caret_background_color")).to_html()); - cf->set_value(theme_section, "line_number_color", ((Color)get("text_editor/line_number_color")).to_html()); - cf->set_value(theme_section, "text_color", ((Color)get("text_editor/text_color")).to_html()); - cf->set_value(theme_section, "text_selected_color", ((Color)get("text_editor/text_selected_color")).to_html()); - cf->set_value(theme_section, "keyword_color", ((Color)get("text_editor/keyword_color")).to_html()); - cf->set_value(theme_section, "base_type_color", ((Color)get("text_editor/base_type_color")).to_html()); - cf->set_value(theme_section, "engine_type_color", ((Color)get("text_editor/engine_type_color")).to_html()); - cf->set_value(theme_section, "function_color", ((Color)get("text_editor/function_color")).to_html()); - cf->set_value(theme_section, "member_variable_color", ((Color)get("text_editor/member_variable_color")).to_html()); - cf->set_value(theme_section, "comment_color", ((Color)get("text_editor/comment_color")).to_html()); - cf->set_value(theme_section, "string_color", ((Color)get("text_editor/string_color")).to_html()); - cf->set_value(theme_section, "number_color", ((Color)get("text_editor/number_color")).to_html()); - cf->set_value(theme_section, "symbol_color", ((Color)get("text_editor/symbol_color")).to_html()); - cf->set_value(theme_section, "selection_color", ((Color)get("text_editor/selection_color")).to_html()); - cf->set_value(theme_section, "brace_mismatch_color", ((Color)get("text_editor/brace_mismatch_color")).to_html()); - cf->set_value(theme_section, "current_line_color", ((Color)get("text_editor/current_line_color")).to_html()); - cf->set_value(theme_section, "mark_color", ((Color)get("text_editor/mark_color")).to_html()); - cf->set_value(theme_section, "breakpoint_color", ((Color)get("text_editor/breakpoint_color")).to_html()); - cf->set_value(theme_section, "word_highlighted_color", ((Color)get("text_editor/word_highlighted_color")).to_html()); - cf->set_value(theme_section, "search_result_color", ((Color)get("text_editor/search_result_color")).to_html()); - cf->set_value(theme_section, "search_result_border_color", ((Color)get("text_editor/search_result_border_color")).to_html()); + cf->set_value(theme_section, "background_color", ((Color)get("text_editor/highlighting/background_color")).to_html()); + cf->set_value(theme_section, "completion_background_color", ((Color)get("text_editor/highlighting/completion_background_color")).to_html()); + cf->set_value(theme_section, "completion_selected_color", ((Color)get("text_editor/highlighting/completion_selected_color")).to_html()); + cf->set_value(theme_section, "completion_existing_color", ((Color)get("text_editor/highlighting/completion_existing_color")).to_html()); + cf->set_value(theme_section, "completion_scroll_color", ((Color)get("text_editor/highlighting/completion_scroll_color")).to_html()); + cf->set_value(theme_section, "completion_font_color", ((Color)get("text_editor/highlighting/completion_font_color")).to_html()); + cf->set_value(theme_section, "caret_color", ((Color)get("text_editor/highlighting/caret_color")).to_html()); + cf->set_value(theme_section, "caret_background_color", ((Color)get("text_editor/highlighting/caret_background_color")).to_html()); + cf->set_value(theme_section, "line_number_color", ((Color)get("text_editor/highlighting/line_number_color")).to_html()); + cf->set_value(theme_section, "text_color", ((Color)get("text_editor/highlighting/text_color")).to_html()); + cf->set_value(theme_section, "text_selected_color", ((Color)get("text_editor/highlighting/text_selected_color")).to_html()); + cf->set_value(theme_section, "keyword_color", ((Color)get("text_editor/highlighting/keyword_color")).to_html()); + cf->set_value(theme_section, "base_type_color", ((Color)get("text_editor/highlighting/base_type_color")).to_html()); + cf->set_value(theme_section, "engine_type_color", ((Color)get("text_editor/highlighting/engine_type_color")).to_html()); + cf->set_value(theme_section, "function_color", ((Color)get("text_editor/highlighting/function_color")).to_html()); + cf->set_value(theme_section, "member_variable_color", ((Color)get("text_editor/highlighting/member_variable_color")).to_html()); + cf->set_value(theme_section, "comment_color", ((Color)get("text_editor/highlighting/comment_color")).to_html()); + cf->set_value(theme_section, "string_color", ((Color)get("text_editor/highlighting/string_color")).to_html()); + cf->set_value(theme_section, "number_color", ((Color)get("text_editor/highlighting/number_color")).to_html()); + cf->set_value(theme_section, "symbol_color", ((Color)get("text_editor/highlighting/symbol_color")).to_html()); + cf->set_value(theme_section, "selection_color", ((Color)get("text_editor/highlighting/selection_color")).to_html()); + cf->set_value(theme_section, "brace_mismatch_color", ((Color)get("text_editor/highlighting/brace_mismatch_color")).to_html()); + cf->set_value(theme_section, "current_line_color", ((Color)get("text_editor/highlighting/current_line_color")).to_html()); + cf->set_value(theme_section, "mark_color", ((Color)get("text_editor/highlighting/mark_color")).to_html()); + cf->set_value(theme_section, "breakpoint_color", ((Color)get("text_editor/highlighting/breakpoint_color")).to_html()); + cf->set_value(theme_section, "word_highlighted_color", ((Color)get("text_editor/highlighting/word_highlighted_color")).to_html()); + cf->set_value(theme_section, "search_result_color", ((Color)get("text_editor/highlighting/search_result_color")).to_html()); + cf->set_value(theme_section, "search_result_border_color", ((Color)get("text_editor/highlighting/search_result_border_color")).to_html()); Error err = cf->save(p_file); @@ -1051,17 +1050,17 @@ void EditorSettings::set_last_selected_language(String p_language) void EditorSettings::_bind_methods() { - ObjectTypeDB::bind_method(_MD("erase","property"),&EditorSettings::erase); - ObjectTypeDB::bind_method(_MD("get_settings_path"),&EditorSettings::get_settings_path); - ObjectTypeDB::bind_method(_MD("get_project_settings_path"),&EditorSettings::get_project_settings_path); + ClassDB::bind_method(_MD("erase","property"),&EditorSettings::erase); + ClassDB::bind_method(_MD("get_settings_path"),&EditorSettings::get_settings_path); + ClassDB::bind_method(_MD("get_project_settings_path"),&EditorSettings::get_project_settings_path); - ObjectTypeDB::bind_method(_MD("add_property_info", "info"),&EditorSettings::_add_property_info_bind); + ClassDB::bind_method(_MD("add_property_info", "info"),&EditorSettings::_add_property_info_bind); - ObjectTypeDB::bind_method(_MD("set_favorite_dirs","dirs"),&EditorSettings::set_favorite_dirs); - ObjectTypeDB::bind_method(_MD("get_favorite_dirs"),&EditorSettings::get_favorite_dirs); + ClassDB::bind_method(_MD("set_favorite_dirs","dirs"),&EditorSettings::set_favorite_dirs); + ClassDB::bind_method(_MD("get_favorite_dirs"),&EditorSettings::get_favorite_dirs); - ObjectTypeDB::bind_method(_MD("set_recent_dirs","dirs"),&EditorSettings::set_recent_dirs); - ObjectTypeDB::bind_method(_MD("get_recent_dirs"),&EditorSettings::get_recent_dirs); + ClassDB::bind_method(_MD("set_recent_dirs","dirs"),&EditorSettings::set_recent_dirs); + ClassDB::bind_method(_MD("get_recent_dirs"),&EditorSettings::get_recent_dirs); ADD_SIGNAL(MethodInfo("settings_changed")); @@ -1098,7 +1097,6 @@ EditorSettings::EditorSettings() { } _load_defaults(); - save_changed_setting=false; } @@ -1106,7 +1104,7 @@ EditorSettings::EditorSettings() { EditorSettings::~EditorSettings() { -// singleton=NULL; + //singleton=NULL; } Ref<ShortCut> ED_GET_SHORTCUT(const String& p_path) { diff --git a/tools/editor/editor_settings.h b/tools/editor/editor_settings.h index a976602304..c11feef667 100644 --- a/tools/editor/editor_settings.h +++ b/tools/editor/editor_settings.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -41,7 +41,7 @@ class EditorPlugin; class EditorSettings : public Resource { - OBJ_TYPE( EditorSettings, Resource ); + GDCLASS( EditorSettings, Resource ); private: _THREAD_SAFE_CLASS_ diff --git a/tools/editor/editor_sub_scene.cpp b/tools/editor/editor_sub_scene.cpp index d32dbcd2e6..094cf049b3 100644 --- a/tools/editor/editor_sub_scene.cpp +++ b/tools/editor/editor_sub_scene.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,10 +27,11 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_sub_scene.h" + #include "scene/gui/margin_container.h" #include "scene/resources/packed_scene.h" -void EditorSubScene::_path_selected(const String& p_path) { +void EditorSubScene::_path_selected(const String& p_path) { path->set_text(p_path); _path_changed(p_path); @@ -75,7 +76,7 @@ void EditorSubScene::_notification(int p_what) { if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { - if (!is_visible()) { + if (!is_visible_in_tree()) { } @@ -90,8 +91,8 @@ void EditorSubScene::_fill_tree(Node* p_node,TreeItem *p_parent) { it->set_text(0,p_node->get_name()); it->set_editable(0,false); it->set_selectable(0,true); - if (has_icon(p_node->get_type(),"EditorIcons")) { - it->set_icon(0,get_icon(p_node->get_type(),"EditorIcons")); + if (has_icon(p_node->get_class(),"EditorIcons")) { + it->set_icon(0,get_icon(p_node->get_class(),"EditorIcons")); } @@ -186,9 +187,9 @@ void EditorSubScene::clear() { void EditorSubScene::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_path_selected"),&EditorSubScene::_path_selected); - ObjectTypeDB::bind_method(_MD("_path_changed"),&EditorSubScene::_path_changed); - ObjectTypeDB::bind_method(_MD("_path_browse"),&EditorSubScene::_path_browse); + ClassDB::bind_method(_MD("_path_selected"),&EditorSubScene::_path_selected); + ClassDB::bind_method(_MD("_path_changed"),&EditorSubScene::_path_changed); + ClassDB::bind_method(_MD("_path_browse"),&EditorSubScene::_path_browse); ADD_SIGNAL( MethodInfo("subscene_selected")); } @@ -203,7 +204,7 @@ EditorSubScene::EditorSubScene() { VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); - set_child_rect(vb); + //set_child_rect(vb); HBoxContainer *hb = memnew( HBoxContainer ); path = memnew( LineEdit ); diff --git a/tools/editor/editor_sub_scene.h b/tools/editor/editor_sub_scene.h index 3dd86eefda..cc9faffc77 100644 --- a/tools/editor/editor_sub_scene.h +++ b/tools/editor/editor_sub_scene.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,7 +35,7 @@ class EditorSubScene : public ConfirmationDialog { - OBJ_TYPE(EditorSubScene,ConfirmationDialog); + GDCLASS(EditorSubScene,ConfirmationDialog); LineEdit *path; diff --git a/tools/editor/editor_themes.cpp b/tools/editor/editor_themes.cpp index 08f14ec167..7657996b81 100644 --- a/tools/editor/editor_themes.cpp +++ b/tools/editor/editor_themes.cpp @@ -1,11 +1,11 @@ /*************************************************************************/ -/* editor_themes.cpp */ +/* editor_themes.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,8 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ - #include "editor_themes.h" + #include "editor_icons.h" #include "editor_fonts.h" #include "editor_settings.h" @@ -62,12 +62,12 @@ Ref<Theme> create_custom_theme() { Ref<Theme> theme; - String custom_theme = EditorSettings::get_singleton()->get("global/custom_theme"); + String custom_theme = EditorSettings::get_singleton()->get("interface/custom_theme"); if (custom_theme!="") { theme = ResourceLoader::load(custom_theme); } - String global_font = EditorSettings::get_singleton()->get("global/custom_font"); + String global_font = EditorSettings::get_singleton()->get("interface/custom_font"); if (global_font!="") { Ref<Font> fnt = ResourceLoader::load(global_font); if (fnt.is_valid()) { diff --git a/tools/editor/editor_themes.h b/tools/editor/editor_themes.h index db49801600..bf15420917 100644 --- a/tools/editor/editor_themes.h +++ b/tools/editor/editor_themes.h @@ -1,11 +1,11 @@ /*************************************************************************/ -/* editor_themes.h */ +/* editor_themes.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/file_type_cache.cpp b/tools/editor/file_type_cache.cpp index 8a47f49b03..aff99fbc05 100644 --- a/tools/editor/file_type_cache.cpp +++ b/tools/editor/file_type_cache.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,10 +27,10 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "file_type_cache.h" + #include "globals.h" #include "os/file_access.h" - FileTypeCache* FileTypeCache::singleton=NULL; bool FileTypeCache::has_file(const String& p_path) const { @@ -55,7 +55,7 @@ void FileTypeCache::set_file_type(const String& p_path,const String& p_type){ void FileTypeCache::load() { GLOBAL_LOCK_FUNCTION - String project=Globals::get_singleton()->get_resource_path(); + String project=GlobalConfig::get_singleton()->get_resource_path(); FileAccess *f =FileAccess::open(project+"/file_type_cache.cch",FileAccess::READ); if (!f) { @@ -81,7 +81,7 @@ void FileTypeCache::load() { void FileTypeCache::save() { GLOBAL_LOCK_FUNCTION - String project=Globals::get_singleton()->get_resource_path(); + String project=GlobalConfig::get_singleton()->get_resource_path(); FileAccess *f =FileAccess::open(project+"/file_type_cache.cch",FileAccess::WRITE); if (!f) { diff --git a/tools/editor/file_type_cache.h b/tools/editor/file_type_cache.h index 18451cbe19..25755f168c 100644 --- a/tools/editor/file_type_cache.h +++ b/tools/editor/file_type_cache.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -33,7 +33,7 @@ class FileTypeCache : Object { - OBJ_TYPE(FileTypeCache,Object); + GDCLASS(FileTypeCache,Object); HashMap<String,String> file_type_map; diff --git a/tools/editor/fileserver/SCsub b/tools/editor/fileserver/SCsub index 6299fd416c..4bf55189cc 100644 --- a/tools/editor/fileserver/SCsub +++ b/tools/editor/fileserver/SCsub @@ -2,4 +2,4 @@ Import('env') Export('env') -env.add_source_files(env.tool_sources,"*.cpp") +env.add_source_files(env.tool_sources, "*.cpp") diff --git a/tools/editor/fileserver/editor_file_server.cpp b/tools/editor/fileserver/editor_file_server.cpp index c464e10fc2..2e5dbf6248 100644 --- a/tools/editor/fileserver/editor_file_server.cpp +++ b/tools/editor/fileserver/editor_file_server.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_file_server.h" + #include "io/marshalls.h" #include "io/marshalls.h" #include "../editor_settings.h" @@ -38,7 +39,7 @@ void EditorFileServer::_close_client(ClientData *cd) { - cd->connection->disconnect(); + cd->connection->disconnect_from_host(); cd->efs->wait_mutex->lock(); cd->efs->to_wait.insert(cd->thread); cd->efs->wait_mutex->unlock(); @@ -321,8 +322,8 @@ void EditorFileServer::start() { stop(); - port=EDITOR_DEF("file_server/port",6010); - password=EDITOR_DEF("file_server/password",""); + port=EDITOR_DEF("filesystem/file_server/port",6010); + password=EDITOR_DEF("filesystem/file_server/password",""); cmd=CMD_ACTIVATE; } @@ -346,8 +347,8 @@ EditorFileServer::EditorFileServer() { cmd=CMD_NONE; thread=Thread::create(_thread_start,this); - EDITOR_DEF("file_server/port",6010); - EDITOR_DEF("file_server/password",""); + EDITOR_DEF("filesystem/file_server/port",6010); + EDITOR_DEF("filesystem/file_server/password",""); } EditorFileServer::~EditorFileServer() { diff --git a/tools/editor/fileserver/editor_file_server.h b/tools/editor/fileserver/editor_file_server.h index fcb3d8546c..31f8ae84b8 100644 --- a/tools/editor/fileserver/editor_file_server.h +++ b/tools/editor/fileserver/editor_file_server.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ class EditorFileServer : public Object { - OBJ_TYPE(EditorFileServer,Object); + GDCLASS(EditorFileServer,Object); enum Command { CMD_NONE, diff --git a/tools/editor/filesystem_dock.cpp b/tools/editor/filesystem_dock.cpp index 5b1e80fc3b..021d5c4eb9 100644 --- a/tools/editor/filesystem_dock.cpp +++ b/tools/editor/filesystem_dock.cpp @@ -1,11 +1,11 @@ /*************************************************************************/ -/* scenes_dock.cpp */ +/* filesystem_dock.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,25 +27,26 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "filesystem_dock.h" + #include "os/dir_access.h" #include "os/file_access.h" #include "globals.h" - #include "io/resource_loader.h" #include "os/os.h" #include "editor_node.h" - #include "editor_settings.h" #include "scene/main/viewport.h" - bool FileSystemDock::_create_tree(TreeItem *p_parent,EditorFileSystemDirectory *p_dir) { - TreeItem *item = tree->create_item(p_parent); String dname=p_dir->get_name(); if (dname=="") dname="res://"; + else { + // collapse every tree item but the root folder + item->set_collapsed(true); + } item->set_text(0,dname); item->set_icon(0,get_icon("Folder","EditorIcons")); @@ -160,7 +161,8 @@ void FileSystemDock::_notification(int p_what) { button_hist_next->set_icon( get_icon("Forward","EditorIcons")); button_hist_prev->set_icon( get_icon("Back","EditorIcons")); - file_options->connect("item_pressed",this,"_file_option"); + file_options->connect("id_pressed",this,"_file_option"); + folder_options->connect("id_pressed",this,"_folder_option"); button_back->connect("pressed",this,"_go_to_tree",varray(),CONNECT_DEFERRED); @@ -168,13 +170,13 @@ void FileSystemDock::_notification(int p_what) { _update_tree(); //maybe it finished already if (EditorFileSystem::get_singleton()->is_scanning()) { - _set_scannig_mode(); + _set_scanning_mode(); } } break; case NOTIFICATION_PROCESS: { if (EditorFileSystem::get_singleton()->is_scanning()) { - scanning_progress->set_val(EditorFileSystem::get_singleton()->get_scanning_progress()*100); + scanning_progress->set_value(EditorFileSystem::get_singleton()->get_scanning_progress()*100); } } break; case NOTIFICATION_EXIT_TREE: { @@ -183,7 +185,7 @@ void FileSystemDock::_notification(int p_what) { case NOTIFICATION_DRAG_BEGIN: { Dictionary dd = get_viewport()->gui_get_drag_data(); - if (tree->is_visible() && dd.has("type") ) { + if (tree->is_visible_in_tree() && dd.has("type") ) { if ( (String(dd["type"])=="files") || (String(dd["type"])=="files_and_dirs") || (String(dd["type"])=="resource")) { tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM); } @@ -201,7 +203,7 @@ void FileSystemDock::_notification(int p_what) { } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { - int new_mode = int(EditorSettings::get_singleton()->get("filesystem_dock/display_mode")); + int new_mode = int(EditorSettings::get_singleton()->get("docks/filesystem/display_mode")); if (new_mode != display_mode) { set_display_mode(new_mode); @@ -289,7 +291,7 @@ void FileSystemDock::_thumbnail_done(const String& p_path,const Ref<Texture>& p_ bool valid=false; - if (!search_box->is_hidden()) { + if (search_box->is_visible()) { valid=true; } else { valid=(path==p_path.get_base_dir()); @@ -323,7 +325,7 @@ void FileSystemDock::_change_file_display() { button_display_mode->set_icon( get_icon("FileList","EditorIcons")); } - EditorSettings::get_singleton()->set("filesystem_dock/display_mode", display_mode); + EditorSettings::get_singleton()->set("docks/filesystem/display_mode", display_mode); _update_files(true); } @@ -393,11 +395,11 @@ void FileSystemDock::_update_files(bool p_keep_selection) { current_path->set_text(path); - EditorFileSystemDirectory *efd = EditorFileSystem::get_singleton()->get_path(path); + EditorFileSystemDirectory *efd = EditorFileSystem::get_singleton()->get_filesystem_path(path); if (!efd) return; - int thumbnail_size = EditorSettings::get_singleton()->get("filesystem_dock/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("docks/filesystem/thumbnail_size"); thumbnail_size*=EDSCALE; Ref<Texture> folder_thumbnail; Ref<Texture> file_thumbnail; @@ -621,7 +623,7 @@ void FileSystemDock::_go_to_dir(const String& p_dir){ void FileSystemDock::_preview_invalidated(const String& p_path) { - if (p_path.get_base_dir()==path && search_box->get_text()==String() && file_list_vb->is_visible()) { + if (p_path.get_base_dir()==path && search_box->get_text()==String() && file_list_vb->is_visible_in_tree()) { for(int i=0;i<files->get_item_count();i++) { @@ -646,13 +648,13 @@ void FileSystemDock::_fs_changed() { scanning_vb->hide(); split_box->show(); - if (!tree->is_hidden()) { + if (tree->is_visible()) { button_favorite->show(); _update_tree(); } - if (!file_list_vb->is_hidden()) { + if (file_list_vb->is_visible()) { _update_files(true); } @@ -660,7 +662,7 @@ void FileSystemDock::_fs_changed() { set_process(false); } -void FileSystemDock::_set_scannig_mode() { +void FileSystemDock::_set_scanning_mode() { split_box->hide(); button_hist_prev->set_disabled(true); @@ -668,9 +670,9 @@ void FileSystemDock::_set_scannig_mode() { scanning_vb->show(); set_process(true); if (EditorFileSystem::get_singleton()->is_scanning()) { - scanning_progress->set_val(EditorFileSystem::get_singleton()->get_scanning_progress()*100); + scanning_progress->set_value(EditorFileSystem::get_singleton()->get_scanning_progress()*100); } else { - scanning_progress->set_val(0); + scanning_progress->set_value(0); } } @@ -682,14 +684,14 @@ void FileSystemDock::_fw_history() { path=history[history_pos]; - if (!tree->is_hidden()) { + if (tree->is_visible()) { _update_tree(); tree->grab_focus(); tree->ensure_cursor_is_visible(); } - if (!file_list_vb->is_hidden()) { + if (file_list_vb->is_visible()) { _update_files(false); current_path->set_text(path); } @@ -707,13 +709,13 @@ void FileSystemDock::_bw_history() { path=history[history_pos]; - if (!tree->is_hidden()) { + if (tree->is_visible()) { _update_tree(); tree->grab_focus(); tree->ensure_cursor_is_visible(); } - if (!file_list_vb->is_hidden()) { + if (file_list_vb->is_visible()) { _update_files(false); current_path->set_text(path); } @@ -829,7 +831,7 @@ void FileSystemDock::_move_operation(const String& p_to_path) { return; } - EditorFileSystemDirectory *efsd=EditorFileSystem::get_singleton()->get_path(move_dirs[i]); + EditorFileSystemDirectory *efsd=EditorFileSystem::get_singleton()->get_filesystem_path(move_dirs[i]); if (!efsd) continue; _find_inside_move_files(efsd,inside_files); @@ -927,7 +929,7 @@ void FileSystemDock::_file_option(int p_option) { String path = files->get_item_metadata(idx); if (p_option == FILE_SHOW_IN_EXPLORER) { - String dir = Globals::get_singleton()->globalize_path(path); + String dir = GlobalConfig::get_singleton()->globalize_path(path); dir = dir.substr(0, dir.find_last("/")); OS::get_singleton()->shell_open(String("file://")+dir); return; @@ -987,7 +989,7 @@ void FileSystemDock::_file_option(int p_option) { } break; case FILE_MOVE: { - move_dirs.clear();; + move_dirs.clear(); move_files.clear(); for(int i=0;i<files->get_item_count();i++) { @@ -1012,7 +1014,7 @@ void FileSystemDock::_file_option(int p_option) { if (move_dirs.empty() && move_files.size()==1) { rename_dialog->clear_filters(); - rename_dialog->add_filter("*."+move_files[0].extension()); + rename_dialog->add_filter("*."+move_files[0].get_extension()); rename_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); rename_dialog->set_current_path(move_files[0]); rename_dialog->popup_centered_ratio(); @@ -1096,6 +1098,30 @@ void FileSystemDock::_file_option(int p_option) { } } +void FileSystemDock::_folder_option(int p_option) { + + TreeItem *item = tree->get_selected(); + TreeItem *child = item->get_children(); + + switch(p_option) { + + case FOLDER_EXPAND_ALL: + item->set_collapsed(false); + while(child) { + child->set_collapsed(false); + child = child->get_next(); + } + break; + + case FOLDER_COLLAPSE_ALL: + while(child) { + child->set_collapsed(true); + child = child->get_next(); + } + break; + } +} + void FileSystemDock::_open_pressed(){ @@ -1122,14 +1148,25 @@ void FileSystemDock::_open_pressed(){ current_path->set_text(path); _push_to_history(); -// emit_signal("open",path); + //emit_signal("open",path); + +} + +void FileSystemDock::_dir_rmb_pressed(const Vector2& p_pos) { + folder_options->clear(); + folder_options->set_size(Size2(1,1)); + + folder_options->add_item(TTR("Expand all"),FOLDER_EXPAND_ALL); + folder_options->add_item(TTR("Collapse all"),FOLDER_COLLAPSE_ALL); + folder_options->set_pos(files->get_global_pos() + p_pos); + folder_options->popup(); } void FileSystemDock::_search_changed(const String& p_text) { - if (!search_box->is_visible()) + if (!search_box->is_visible_in_tree()) return; //wtf _update_files(false); @@ -1137,7 +1174,7 @@ void FileSystemDock::_search_changed(const String& p_text) { void FileSystemDock::_rescan() { - _set_scannig_mode(); + _set_scanning_mode(); EditorFileSystem::get_singleton()->scan(); } @@ -1149,6 +1186,14 @@ void FileSystemDock::fix_dependencies(const String& p_for_file) { void FileSystemDock::focus_on_filter() { + if (!search_box->is_visible_in_tree()) { + // Tree mode, switch to files list with search box + tree->hide(); + file_list_vb->show(); + button_favorite->hide(); + } + + search_box->grab_focus(); } void FileSystemDock::set_display_mode(int p_mode) { @@ -1204,8 +1249,10 @@ Variant FileSystemDock::get_drag_data_fw(const Point2& p_point,Control* p_from) if (seldirs.empty() && selfiles.empty()) return Variant(); - //if (seldirs.size() && selfiles.size()) - // return Variant(); //can't really mix files and dirs (i think?) - yes you can, commenting + /* + if (seldirs.size() && selfiles.size()) + return Variant(); //can't really mix files and dirs (i think?) - yes you can, commenting + */ /*if (selfiles.size()==1) { Ref<Resource> resource = ResourceLoader::load(files->get_item_metadata(selfiles.front()->get())); @@ -1579,38 +1626,53 @@ void FileSystemDock::_files_list_rmb_select(int p_item,const Vector2& p_pos) { } -void FileSystemDock::_bind_methods() { - - ObjectTypeDB::bind_method(_MD("_update_tree"),&FileSystemDock::_update_tree); - ObjectTypeDB::bind_method(_MD("_rescan"),&FileSystemDock::_rescan); - ObjectTypeDB::bind_method(_MD("_favorites_pressed"),&FileSystemDock::_favorites_pressed); -// ObjectTypeDB::bind_method(_MD("_instance_pressed"),&ScenesDock::_instance_pressed); - ObjectTypeDB::bind_method(_MD("_open_pressed"),&FileSystemDock::_open_pressed); +void FileSystemDock::select_file(const String& p_file) { - ObjectTypeDB::bind_method(_MD("_thumbnail_done"),&FileSystemDock::_thumbnail_done); - ObjectTypeDB::bind_method(_MD("_select_file"), &FileSystemDock::_select_file); - ObjectTypeDB::bind_method(_MD("_go_to_tree"), &FileSystemDock::_go_to_tree); - ObjectTypeDB::bind_method(_MD("_go_to_dir"), &FileSystemDock::_go_to_dir); - ObjectTypeDB::bind_method(_MD("_change_file_display"), &FileSystemDock::_change_file_display); - ObjectTypeDB::bind_method(_MD("_fw_history"), &FileSystemDock::_fw_history); - ObjectTypeDB::bind_method(_MD("_bw_history"), &FileSystemDock::_bw_history); - ObjectTypeDB::bind_method(_MD("_fs_changed"), &FileSystemDock::_fs_changed); - ObjectTypeDB::bind_method(_MD("_dir_selected"), &FileSystemDock::_dir_selected); - ObjectTypeDB::bind_method(_MD("_file_option"), &FileSystemDock::_file_option); - ObjectTypeDB::bind_method(_MD("_move_operation"), &FileSystemDock::_move_operation); - ObjectTypeDB::bind_method(_MD("_rename_operation"), &FileSystemDock::_rename_operation); - - ObjectTypeDB::bind_method(_MD("_search_changed"), &FileSystemDock::_search_changed); - - ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &FileSystemDock::get_drag_data_fw); - ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &FileSystemDock::can_drop_data_fw); - ObjectTypeDB::bind_method(_MD("drop_data_fw"), &FileSystemDock::drop_data_fw); - ObjectTypeDB::bind_method(_MD("_files_list_rmb_select"),&FileSystemDock::_files_list_rmb_select); + _go_to_dir(p_file.get_base_dir()); + for(int i=0;i<files->get_item_count();i++) { + if (files->get_item_metadata(i)==p_file) { + files->select(i); + files->ensure_current_is_visible(); + break; + } + } - ObjectTypeDB::bind_method(_MD("_preview_invalidated"),&FileSystemDock::_preview_invalidated); +} +void FileSystemDock::_bind_methods() { - ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::STRING_ARRAY, "files"))); + ClassDB::bind_method(_MD("_update_tree"),&FileSystemDock::_update_tree); + ClassDB::bind_method(_MD("_rescan"),&FileSystemDock::_rescan); + ClassDB::bind_method(_MD("_favorites_pressed"),&FileSystemDock::_favorites_pressed); + //ClassDB::bind_method(_MD("_instance_pressed"),&ScenesDock::_instance_pressed); + ClassDB::bind_method(_MD("_open_pressed"),&FileSystemDock::_open_pressed); + ClassDB::bind_method(_MD("_dir_rmb_pressed"),&FileSystemDock::_dir_rmb_pressed); + + ClassDB::bind_method(_MD("_thumbnail_done"),&FileSystemDock::_thumbnail_done); + ClassDB::bind_method(_MD("_select_file"), &FileSystemDock::_select_file); + ClassDB::bind_method(_MD("_go_to_tree"), &FileSystemDock::_go_to_tree); + ClassDB::bind_method(_MD("_go_to_dir"), &FileSystemDock::_go_to_dir); + ClassDB::bind_method(_MD("_change_file_display"), &FileSystemDock::_change_file_display); + ClassDB::bind_method(_MD("_fw_history"), &FileSystemDock::_fw_history); + ClassDB::bind_method(_MD("_bw_history"), &FileSystemDock::_bw_history); + ClassDB::bind_method(_MD("_fs_changed"), &FileSystemDock::_fs_changed); + ClassDB::bind_method(_MD("_dir_selected"), &FileSystemDock::_dir_selected); + ClassDB::bind_method(_MD("_file_option"), &FileSystemDock::_file_option); + ClassDB::bind_method(_MD("_folder_option"), &FileSystemDock::_folder_option); + ClassDB::bind_method(_MD("_move_operation"), &FileSystemDock::_move_operation); + ClassDB::bind_method(_MD("_rename_operation"), &FileSystemDock::_rename_operation); + + ClassDB::bind_method(_MD("_search_changed"), &FileSystemDock::_search_changed); + + ClassDB::bind_method(_MD("get_drag_data_fw"), &FileSystemDock::get_drag_data_fw); + ClassDB::bind_method(_MD("can_drop_data_fw"), &FileSystemDock::can_drop_data_fw); + ClassDB::bind_method(_MD("drop_data_fw"), &FileSystemDock::drop_data_fw); + ClassDB::bind_method(_MD("_files_list_rmb_select"),&FileSystemDock::_files_list_rmb_select); + + ClassDB::bind_method(_MD("_preview_invalidated"),&FileSystemDock::_preview_invalidated); + + + ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::POOL_STRING_ARRAY, "files"))); ADD_SIGNAL(MethodInfo("open")); } @@ -1660,7 +1722,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { button_favorite->set_focus_mode(FOCUS_NONE); -// Control *spacer = memnew( Control); + //Control *spacer = memnew( Control); @@ -1686,6 +1748,9 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { file_options = memnew( PopupMenu ); add_child(file_options); + folder_options = memnew ( PopupMenu ); + add_child(folder_options); + split_box = memnew( VSplitContainer ); add_child(split_box); split_box->set_v_size_flags(SIZE_EXPAND_FILL); @@ -1695,12 +1760,14 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { tree->set_hide_root(true); split_box->add_child(tree); tree->set_drag_forwarding(this); + tree->set_allow_rmb_select(true); //tree->set_v_size_flags(SIZE_EXPAND_FILL); tree->connect("item_edited",this,"_favorite_toggled"); tree->connect("item_activated",this,"_open_pressed"); tree->connect("cell_selected",this,"_dir_selected"); + tree->connect("item_rmb_selected",this,"_dir_rmb_pressed"); files = memnew( ItemList ); files->set_v_size_flags(SIZE_EXPAND_FILL); @@ -1725,8 +1792,8 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { path_hb->add_child(search_box); search_box->connect("text_changed",this,"_search_changed"); - search_icon = memnew( TextureFrame ); - search_icon->set_stretch_mode(TextureFrame::STRETCH_KEEP_CENTERED); + search_icon = memnew( TextureRect ); + search_icon->set_stretch_mode(TextureRect::STRETCH_KEEP_CENTERED); path_hb->add_child(search_icon); button_display_mode = memnew( ToolButton ); diff --git a/tools/editor/filesystem_dock.h b/tools/editor/filesystem_dock.h index f5b96760fc..73265657e5 100644 --- a/tools/editor/filesystem_dock.h +++ b/tools/editor/filesystem_dock.h @@ -1,11 +1,11 @@ /*************************************************************************/ -/* scenes_dock.h */ +/* filesystem_dock.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -52,7 +52,7 @@ class EditorNode; class FileSystemDock : public VBoxContainer { - OBJ_TYPE( FileSystemDock, VBoxContainer ); + GDCLASS( FileSystemDock, VBoxContainer ); public: enum DisplayMode { @@ -73,6 +73,11 @@ private: FILE_COPY_PATH }; + enum FolderMenu { + FOLDER_EXPAND_ALL, + FOLDER_COLLAPSE_ALL + }; + VBoxContainer *scanning_vb; ProgressBar *scanning_progress; @@ -90,13 +95,14 @@ private: Button *button_hist_prev; LineEdit *current_path; LineEdit *search_box; - TextureFrame *search_icon; + TextureRect *search_icon; HBoxContainer *path_hb; bool split_mode; DisplayMode display_mode; PopupMenu *file_options; + PopupMenu *folder_options; DependencyEditor *deps_editor; DependencyEditorOwners *owners_editor; @@ -134,6 +140,7 @@ private: void _file_option(int p_option); + void _folder_option(int p_option); void _update_files(bool p_keep_selection); void _change_file_display(); @@ -146,11 +153,12 @@ private: void _dir_selected(); void _update_tree(); void _rescan(); - void _set_scannig_mode(); + void _set_scanning_mode(); void _favorites_pressed(); void _open_pressed(); + void _dir_rmb_pressed(const Vector2& local_mouse_pos); void _search_changed(const String& p_text); @@ -191,6 +199,10 @@ public: void set_display_mode(int p_mode); + int get_split_offset() { return split_box->get_split_offset(); } + void set_split_offset(int p_offset) { split_box->set_split_offset(p_offset); } + void select_file(const String& p_file); + FileSystemDock(EditorNode *p_editor); ~FileSystemDock(); }; diff --git a/tools/editor/groups_editor.cpp b/tools/editor/groups_editor.cpp index 5b7bc1da78..90f0bab6dd 100644 --- a/tools/editor/groups_editor.cpp +++ b/tools/editor/groups_editor.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -32,6 +32,7 @@ #include "scene/gui/label.h" #include "editor_node.h" #include "scene/resources/packed_scene.h" + void GroupsEditor::_add_group(const String& p_group) { if (!node) @@ -147,9 +148,9 @@ void GroupsEditor::set_current(Node* p_node) { void GroupsEditor::_bind_methods() { - ObjectTypeDB::bind_method("_add_group",&GroupsEditor::_add_group); - ObjectTypeDB::bind_method("_remove_group",&GroupsEditor::_remove_group); - ObjectTypeDB::bind_method("update_tree",&GroupsEditor::update_tree); + ClassDB::bind_method("_add_group",&GroupsEditor::_add_group); + ClassDB::bind_method("_remove_group",&GroupsEditor::_remove_group); + ClassDB::bind_method("update_tree",&GroupsEditor::update_tree); } GroupsEditor::GroupsEditor() { diff --git a/tools/editor/groups_editor.h b/tools/editor/groups_editor.h index 6edb577140..9ab75c6cfd 100644 --- a/tools/editor/groups_editor.h +++ b/tools/editor/groups_editor.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -41,7 +41,7 @@ class GroupsEditor : public VBoxContainer { - OBJ_TYPE(GroupsEditor,VBoxContainer); + GDCLASS(GroupsEditor,VBoxContainer); Node *node; diff --git a/tools/editor/icons/2x/icon_anchor.png b/tools/editor/icons/2x/icon_anchor.png Binary files differindex db964fd910..7e9e259c13 100644 --- a/tools/editor/icons/2x/icon_anchor.png +++ b/tools/editor/icons/2x/icon_anchor.png diff --git a/tools/editor/icons/2x/icon_animation.png b/tools/editor/icons/2x/icon_animation.png Binary files differindex 5b21e99e43..ef18959a74 100644 --- a/tools/editor/icons/2x/icon_animation.png +++ b/tools/editor/icons/2x/icon_animation.png diff --git a/tools/editor/icons/2x/icon_area.png b/tools/editor/icons/2x/icon_area.png Binary files differindex ff332bf748..d9cefe8fc4 100644 --- a/tools/editor/icons/2x/icon_area.png +++ b/tools/editor/icons/2x/icon_area.png diff --git a/tools/editor/icons/2x/icon_auto_play.png b/tools/editor/icons/2x/icon_auto_play.png Binary files differindex 9a50d1c030..ec31dee958 100644 --- a/tools/editor/icons/2x/icon_auto_play.png +++ b/tools/editor/icons/2x/icon_auto_play.png diff --git a/tools/editor/icons/2x/icon_bit_map.png b/tools/editor/icons/2x/icon_bit_map.png Binary files differnew file mode 100644 index 0000000000..7372b85944 --- /dev/null +++ b/tools/editor/icons/2x/icon_bit_map.png diff --git a/tools/editor/icons/2x/icon_bitmap_font.png b/tools/editor/icons/2x/icon_bitmap_font.png Binary files differindex df6d2a5081..c533b5f40e 100644 --- a/tools/editor/icons/2x/icon_bitmap_font.png +++ b/tools/editor/icons/2x/icon_bitmap_font.png diff --git a/tools/editor/icons/2x/icon_canvas_layer.png b/tools/editor/icons/2x/icon_canvas_layer.png Binary files differindex 9861d3ef45..8a4b31cd7d 100644 --- a/tools/editor/icons/2x/icon_canvas_layer.png +++ b/tools/editor/icons/2x/icon_canvas_layer.png diff --git a/tools/editor/icons/2x/icon_canvas_modulate.png b/tools/editor/icons/2x/icon_canvas_modulate.png Binary files differindex 07ee8a0570..6cc15e2655 100644 --- a/tools/editor/icons/2x/icon_canvas_modulate.png +++ b/tools/editor/icons/2x/icon_canvas_modulate.png diff --git a/tools/editor/icons/2x/icon_color_rect.png b/tools/editor/icons/2x/icon_color_rect.png Binary files differnew file mode 100644 index 0000000000..153029ac20 --- /dev/null +++ b/tools/editor/icons/2x/icon_color_rect.png diff --git a/tools/editor/icons/2x/icon_copy_node_path.png b/tools/editor/icons/2x/icon_copy_node_path.png Binary files differnew file mode 100644 index 0000000000..056748d20b --- /dev/null +++ b/tools/editor/icons/2x/icon_copy_node_path.png diff --git a/tools/editor/icons/2x/icon_create_new_scene_from.png b/tools/editor/icons/2x/icon_create_new_scene_from.png Binary files differindex 15b2c89dc5..cc3be48033 100644 --- a/tools/editor/icons/2x/icon_create_new_scene_from.png +++ b/tools/editor/icons/2x/icon_create_new_scene_from.png diff --git a/tools/editor/icons/2x/icon_cube_map.png b/tools/editor/icons/2x/icon_cube_map.png Binary files differnew file mode 100644 index 0000000000..0edf82a88e --- /dev/null +++ b/tools/editor/icons/2x/icon_cube_map.png diff --git a/tools/editor/icons/2x/icon_curve_2d.png b/tools/editor/icons/2x/icon_curve_2d.png Binary files differnew file mode 100644 index 0000000000..69a6f9a9dc --- /dev/null +++ b/tools/editor/icons/2x/icon_curve_2d.png diff --git a/tools/editor/icons/2x/icon_curve_3d.png b/tools/editor/icons/2x/icon_curve_3d.png Binary files differnew file mode 100644 index 0000000000..e989df4769 --- /dev/null +++ b/tools/editor/icons/2x/icon_curve_3d.png diff --git a/tools/editor/icons/2x/icon_dynamic_font_data.png b/tools/editor/icons/2x/icon_dynamic_font_data.png Binary files differindex 397a849b4f..6d76303c81 100644 --- a/tools/editor/icons/2x/icon_dynamic_font_data.png +++ b/tools/editor/icons/2x/icon_dynamic_font_data.png diff --git a/tools/editor/icons/2x/icon_environment.png b/tools/editor/icons/2x/icon_environment.png Binary files differnew file mode 100644 index 0000000000..4c4c30b0e5 --- /dev/null +++ b/tools/editor/icons/2x/icon_environment.png diff --git a/tools/editor/icons/2x/icon_error.png b/tools/editor/icons/2x/icon_error.png Binary files differindex b577182044..a6d79ab41b 100644 --- a/tools/editor/icons/2x/icon_error.png +++ b/tools/editor/icons/2x/icon_error.png diff --git a/tools/editor/icons/2x/icon_fixed_spatial_material.png b/tools/editor/icons/2x/icon_fixed_spatial_material.png Binary files differnew file mode 100644 index 0000000000..65509a590e --- /dev/null +++ b/tools/editor/icons/2x/icon_fixed_spatial_material.png diff --git a/tools/editor/icons/2x/icon_g_i_probe.png b/tools/editor/icons/2x/icon_g_i_probe.png Binary files differnew file mode 100644 index 0000000000..921f1cca42 --- /dev/null +++ b/tools/editor/icons/2x/icon_g_i_probe.png diff --git a/tools/editor/icons/2x/icon_g_i_probe_data.png b/tools/editor/icons/2x/icon_g_i_probe_data.png Binary files differnew file mode 100644 index 0000000000..69c4ed7184 --- /dev/null +++ b/tools/editor/icons/2x/icon_g_i_probe_data.png diff --git a/tools/editor/icons/2x/icon_image_sky_box.png b/tools/editor/icons/2x/icon_image_sky_box.png Binary files differnew file mode 100644 index 0000000000..487178afab --- /dev/null +++ b/tools/editor/icons/2x/icon_image_sky_box.png diff --git a/tools/editor/icons/2x/icon_interp_wrap_clamp.png b/tools/editor/icons/2x/icon_interp_wrap_clamp.png Binary files differnew file mode 100644 index 0000000000..93a5bc56ee --- /dev/null +++ b/tools/editor/icons/2x/icon_interp_wrap_clamp.png diff --git a/tools/editor/icons/2x/icon_interp_wrap_loop.png b/tools/editor/icons/2x/icon_interp_wrap_loop.png Binary files differnew file mode 100644 index 0000000000..3e656f7b07 --- /dev/null +++ b/tools/editor/icons/2x/icon_interp_wrap_loop.png diff --git a/tools/editor/icons/2x/icon_joystick.png b/tools/editor/icons/2x/icon_joypad.png Binary files differindex 285d048544..285d048544 100644 --- a/tools/editor/icons/2x/icon_joystick.png +++ b/tools/editor/icons/2x/icon_joypad.png diff --git a/tools/editor/icons/2x/icon_key_next.png b/tools/editor/icons/2x/icon_key_next.png Binary files differindex cb2c4eae4b..d35b52d3c7 100644 --- a/tools/editor/icons/2x/icon_key_next.png +++ b/tools/editor/icons/2x/icon_key_next.png diff --git a/tools/editor/icons/2x/icon_large_texture.png b/tools/editor/icons/2x/icon_large_texture.png Binary files differnew file mode 100644 index 0000000000..dd1ec86d39 --- /dev/null +++ b/tools/editor/icons/2x/icon_large_texture.png diff --git a/tools/editor/icons/2x/icon_load.png b/tools/editor/icons/2x/icon_load.png Binary files differindex 729eedd2dd..759381d636 100644 --- a/tools/editor/icons/2x/icon_load.png +++ b/tools/editor/icons/2x/icon_load.png diff --git a/tools/editor/icons/2x/icon_material_shader.png b/tools/editor/icons/2x/icon_material_shader.png Binary files differindex 65509a590e..f8c2e15fcb 100644 --- a/tools/editor/icons/2x/icon_material_shader.png +++ b/tools/editor/icons/2x/icon_material_shader.png diff --git a/tools/editor/icons/2x/icon_mesh_library.png b/tools/editor/icons/2x/icon_mesh_library.png Binary files differnew file mode 100644 index 0000000000..2495e4a037 --- /dev/null +++ b/tools/editor/icons/2x/icon_mesh_library.png diff --git a/tools/editor/icons/2x/icon_navigation_mesh.png b/tools/editor/icons/2x/icon_navigation_mesh.png Binary files differnew file mode 100644 index 0000000000..35b893c3bb --- /dev/null +++ b/tools/editor/icons/2x/icon_navigation_mesh.png diff --git a/tools/editor/icons/2x/icon_navigation_polygon.png b/tools/editor/icons/2x/icon_navigation_polygon.png Binary files differnew file mode 100644 index 0000000000..3f4845e206 --- /dev/null +++ b/tools/editor/icons/2x/icon_navigation_polygon.png diff --git a/tools/editor/icons/2x/icon_patch_9_frame.png b/tools/editor/icons/2x/icon_nine_patch_rect.png Binary files differindex 5762a0392e..5762a0392e 100644 --- a/tools/editor/icons/2x/icon_patch_9_frame.png +++ b/tools/editor/icons/2x/icon_nine_patch_rect.png diff --git a/tools/editor/icons/2x/icon_open.png b/tools/editor/icons/2x/icon_open.png Binary files differnew file mode 100644 index 0000000000..2e797c448b --- /dev/null +++ b/tools/editor/icons/2x/icon_open.png diff --git a/tools/editor/icons/2x/icon_packed_data_container.png b/tools/editor/icons/2x/icon_packed_data_container.png Binary files differnew file mode 100644 index 0000000000..958e41ede2 --- /dev/null +++ b/tools/editor/icons/2x/icon_packed_data_container.png diff --git a/tools/editor/icons/2x/icon_particles_shader.png b/tools/editor/icons/2x/icon_particles_shader.png Binary files differnew file mode 100644 index 0000000000..26ce8f6809 --- /dev/null +++ b/tools/editor/icons/2x/icon_particles_shader.png diff --git a/tools/editor/icons/2x/icon_patch_9_rect.png b/tools/editor/icons/2x/icon_patch_9_rect.png Binary files differnew file mode 100644 index 0000000000..5762a0392e --- /dev/null +++ b/tools/editor/icons/2x/icon_patch_9_rect.png diff --git a/tools/editor/icons/2x/icon_polygon_path_finder.png b/tools/editor/icons/2x/icon_polygon_path_finder.png Binary files differnew file mode 100644 index 0000000000..ee6423c265 --- /dev/null +++ b/tools/editor/icons/2x/icon_polygon_path_finder.png diff --git a/tools/editor/icons/2x/icon_reference_frame.png b/tools/editor/icons/2x/icon_reference_rect.png Binary files differindex 63fe559fa7..63fe559fa7 100644 --- a/tools/editor/icons/2x/icon_reference_frame.png +++ b/tools/editor/icons/2x/icon_reference_rect.png diff --git a/tools/editor/icons/2x/icon_reflection_probe.png b/tools/editor/icons/2x/icon_reflection_probe.png Binary files differnew file mode 100644 index 0000000000..5604b403df --- /dev/null +++ b/tools/editor/icons/2x/icon_reflection_probe.png diff --git a/tools/editor/icons/2x/icon_reparent.png b/tools/editor/icons/2x/icon_reparent.png Binary files differindex 2473a3b362..3063da4b43 100644 --- a/tools/editor/icons/2x/icon_reparent.png +++ b/tools/editor/icons/2x/icon_reparent.png diff --git a/tools/editor/icons/2x/icon_room.png b/tools/editor/icons/2x/icon_room.png Binary files differindex e5e5bb52f8..946f95e955 100644 --- a/tools/editor/icons/2x/icon_room.png +++ b/tools/editor/icons/2x/icon_room.png diff --git a/tools/editor/icons/2x/icon_room_bounds.png b/tools/editor/icons/2x/icon_room_bounds.png Binary files differnew file mode 100644 index 0000000000..94da9c437d --- /dev/null +++ b/tools/editor/icons/2x/icon_room_bounds.png diff --git a/tools/editor/icons/2x/icon_sample_library.png b/tools/editor/icons/2x/icon_sample_library.png Binary files differnew file mode 100644 index 0000000000..3f76a78aca --- /dev/null +++ b/tools/editor/icons/2x/icon_sample_library.png diff --git a/tools/editor/icons/2x/icon_script_create.png b/tools/editor/icons/2x/icon_script_create.png Binary files differnew file mode 100644 index 0000000000..f1e25efe1c --- /dev/null +++ b/tools/editor/icons/2x/icon_script_create.png diff --git a/tools/editor/icons/2x/icon_script_remove.png b/tools/editor/icons/2x/icon_script_remove.png Binary files differnew file mode 100644 index 0000000000..f9a1bb19a4 --- /dev/null +++ b/tools/editor/icons/2x/icon_script_remove.png diff --git a/tools/editor/icons/2x/icon_shader.png b/tools/editor/icons/2x/icon_shader.png Binary files differindex 65509a590e..f8c2e15fcb 100644 --- a/tools/editor/icons/2x/icon_shader.png +++ b/tools/editor/icons/2x/icon_shader.png diff --git a/tools/editor/icons/2x/icon_shader_material.png b/tools/editor/icons/2x/icon_shader_material.png Binary files differindex 65509a590e..f8c2e15fcb 100644 --- a/tools/editor/icons/2x/icon_shader_material.png +++ b/tools/editor/icons/2x/icon_shader_material.png diff --git a/tools/editor/icons/2x/icon_short_cut.png b/tools/editor/icons/2x/icon_short_cut.png Binary files differnew file mode 100644 index 0000000000..58c3e08ca4 --- /dev/null +++ b/tools/editor/icons/2x/icon_short_cut.png diff --git a/tools/editor/icons/2x/icon_spatial_shader.png b/tools/editor/icons/2x/icon_spatial_shader.png Binary files differnew file mode 100644 index 0000000000..68f6cf8dac --- /dev/null +++ b/tools/editor/icons/2x/icon_spatial_shader.png diff --git a/tools/editor/icons/2x/icon_spot_light.png b/tools/editor/icons/2x/icon_spot_light.png Binary files differindex e50c7b6135..e7aa35cbbf 100644 --- a/tools/editor/icons/2x/icon_spot_light.png +++ b/tools/editor/icons/2x/icon_spot_light.png diff --git a/tools/editor/icons/2x/icon_sprite_frames.png b/tools/editor/icons/2x/icon_sprite_frames.png Binary files differnew file mode 100644 index 0000000000..263f5c4aad --- /dev/null +++ b/tools/editor/icons/2x/icon_sprite_frames.png diff --git a/tools/editor/icons/2x/icon_style_box_empty.png b/tools/editor/icons/2x/icon_style_box_empty.png Binary files differnew file mode 100644 index 0000000000..e790af4de4 --- /dev/null +++ b/tools/editor/icons/2x/icon_style_box_empty.png diff --git a/tools/editor/icons/2x/icon_style_box_flat.png b/tools/editor/icons/2x/icon_style_box_flat.png Binary files differnew file mode 100644 index 0000000000..1cd5c7f69a --- /dev/null +++ b/tools/editor/icons/2x/icon_style_box_flat.png diff --git a/tools/editor/icons/2x/icon_style_box_texture.png b/tools/editor/icons/2x/icon_style_box_texture.png Binary files differnew file mode 100644 index 0000000000..a93e0228bd --- /dev/null +++ b/tools/editor/icons/2x/icon_style_box_texture.png diff --git a/tools/editor/icons/2x/icon_tab_container.png b/tools/editor/icons/2x/icon_tab_container.png Binary files differindex 086be0c5ba..93b7161a69 100644 --- a/tools/editor/icons/2x/icon_tab_container.png +++ b/tools/editor/icons/2x/icon_tab_container.png diff --git a/tools/editor/icons/2x/icon_tabs.png b/tools/editor/icons/2x/icon_tabs.png Binary files differindex ade8071b7f..6c317010c8 100644 --- a/tools/editor/icons/2x/icon_tabs.png +++ b/tools/editor/icons/2x/icon_tabs.png diff --git a/tools/editor/icons/2x/icon_test_cube.png b/tools/editor/icons/2x/icon_test_cube.png Binary files differindex 13d54db87d..f2e523be3f 100644 --- a/tools/editor/icons/2x/icon_test_cube.png +++ b/tools/editor/icons/2x/icon_test_cube.png diff --git a/tools/editor/icons/2x/icon_texture_frame.png b/tools/editor/icons/2x/icon_texture_rect.png Binary files differindex 50d715dd09..50d715dd09 100644 --- a/tools/editor/icons/2x/icon_texture_frame.png +++ b/tools/editor/icons/2x/icon_texture_rect.png diff --git a/tools/editor/icons/2x/icon_theme.png b/tools/editor/icons/2x/icon_theme.png Binary files differnew file mode 100644 index 0000000000..55b51428dd --- /dev/null +++ b/tools/editor/icons/2x/icon_theme.png diff --git a/tools/editor/icons/2x/icon_tile_set.png b/tools/editor/icons/2x/icon_tile_set.png Binary files differnew file mode 100644 index 0000000000..9fbd0b4719 --- /dev/null +++ b/tools/editor/icons/2x/icon_tile_set.png diff --git a/tools/editor/icons/2x/icon_track_add_key.png b/tools/editor/icons/2x/icon_track_add_key.png Binary files differindex 9cf0314270..9b7bd14fb4 100644 --- a/tools/editor/icons/2x/icon_track_add_key.png +++ b/tools/editor/icons/2x/icon_track_add_key.png diff --git a/tools/editor/icons/2x/icon_track_add_key_hl.png b/tools/editor/icons/2x/icon_track_add_key_hl.png Binary files differindex 7d170725f6..0763836c3a 100644 --- a/tools/editor/icons/2x/icon_track_add_key_hl.png +++ b/tools/editor/icons/2x/icon_track_add_key_hl.png diff --git a/tools/editor/icons/2x/icon_viewport_container.png b/tools/editor/icons/2x/icon_viewport_container.png Binary files differnew file mode 100644 index 0000000000..c43e53c34e --- /dev/null +++ b/tools/editor/icons/2x/icon_viewport_container.png diff --git a/tools/editor/icons/2x/icon_viewport_texture.png b/tools/editor/icons/2x/icon_viewport_texture.png Binary files differnew file mode 100644 index 0000000000..f798f1d221 --- /dev/null +++ b/tools/editor/icons/2x/icon_viewport_texture.png diff --git a/tools/editor/icons/2x/icon_warning.png b/tools/editor/icons/2x/icon_warning.png Binary files differindex 7359a798ee..5d807065e7 100644 --- a/tools/editor/icons/2x/icon_warning.png +++ b/tools/editor/icons/2x/icon_warning.png diff --git a/tools/editor/icons/2x/icon_world.png b/tools/editor/icons/2x/icon_world.png Binary files differnew file mode 100644 index 0000000000..51b587c01e --- /dev/null +++ b/tools/editor/icons/2x/icon_world.png diff --git a/tools/editor/icons/2x/icon_world_2d.png b/tools/editor/icons/2x/icon_world_2d.png Binary files differnew file mode 100644 index 0000000000..e9cfa10461 --- /dev/null +++ b/tools/editor/icons/2x/icon_world_2d.png diff --git a/tools/editor/icons/SCsub b/tools/editor/icons/SCsub index 9e05d8f391..f86ae2b10d 100644 --- a/tools/editor/icons/SCsub +++ b/tools/editor/icons/SCsub @@ -2,97 +2,95 @@ Import('env') -def make_editor_icons_action(target, source, env): - - import os - import cStringIO - dst = target[0].srcnode().abspath - pixmaps = source - - s = cStringIO.StringIO() +def make_editor_icons_action(target, source, env): - s.write("#include \"editor_icons.h\"\n\n") - s.write("#include \"editor_scale.h\"\n\n") - s.write("#include \"scene/resources/theme.h\"\n\n") + import os + import cStringIO - hidpi_list=[] + dst = target[0].srcnode().abspath + pixmaps = source - for x in pixmaps: + s = cStringIO.StringIO() - x=str(x) - var_str=os.path.basename(x)[:-4]+"_png"; - #print(var_str) + s.write("#include \"editor_icons.h\"\n\n") + s.write("#include \"editor_scale.h\"\n\n") + s.write("#include \"scene/resources/theme.h\"\n\n") - s.write("static const unsigned char "+ var_str +"[]={\n"); + hidpi_list = [] - pngf=open(x,"rb"); + for x in pixmaps: - b=pngf.read(1); - while(len(b)==1): - s.write(hex(ord(b))) - b=pngf.read(1); - if (len(b)==1): - s.write(",") + x = str(x) + var_str = os.path.basename(x)[:-4] + "_png" + # print(var_str) - s.write("\n};\n\n"); + s.write("static const unsigned char " + var_str + "[]={\n") - pngf.close(); - var_str=os.path.basename(x)[:-4]+"_hidpi_png"; - try: + pngf = open(x, "rb") - pngf = open(os.path.dirname(x)+"/2x/"+os.path.basename(x), "rb") + b = pngf.read(1) + while(len(b) == 1): + s.write(hex(ord(b))) + b = pngf.read(1) + if (len(b) == 1): + s.write(",") - s.write("static const unsigned char "+ var_str +"[]={\n"); + s.write("\n};\n\n") - b=pngf.read(1); - while(len(b)==1): - s.write(hex(ord(b))) - b=pngf.read(1); - if (len(b)==1): - s.write(",") + pngf.close() + var_str = os.path.basename(x)[:-4] + "_hidpi_png" + try: - s.write("\n};\n\n\n"); - hidpi_list.append(x) + pngf = open(os.path.dirname(x) + "/2x/" + os.path.basename(x), "rb") - except: - s.write("static const unsigned char* "+ var_str +"=NULL;\n\n\n"); + s.write("static const unsigned char " + var_str + "[]={\n") + b = pngf.read(1) + while(len(b) == 1): + s.write(hex(ord(b))) + b = pngf.read(1) + if (len(b) == 1): + s.write(",") + s.write("\n};\n\n\n") + hidpi_list.append(x) + except: + s.write("static const unsigned char* " + var_str + "=NULL;\n\n\n") - s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png,const uint8_t* p_hidpi_png) {\n") - s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n") - s.write("\tbool use_hidpi_image=(editor_get_scale()>1.0&&p_hidpi_png);\n") - s.write("\tImage img(use_hidpi_image?p_hidpi_png:p_png);\n") - s.write("\tif (editor_get_scale()>1.0 && !p_hidpi_png) { img.convert(Image::FORMAT_RGBA); img.expand_x2_hq2x(); use_hidpi_image=true;}\n") - s.write("\timg.resize(img.get_width()*EDSCALE/(use_hidpi_image?2:1),img.get_height()*EDSCALE/(use_hidpi_image?2:1));\n") - s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n") - s.write("\treturn texture;\n") - s.write("}\n\n") + s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png,const uint8_t* p_hidpi_png) {\n") + s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n") + s.write("\tbool use_hidpi_image=(editor_get_scale()>1.0&&p_hidpi_png);\n") + s.write("\tImage img(use_hidpi_image?p_hidpi_png:p_png);\n") + s.write("\tif (editor_get_scale()>1.0 && !p_hidpi_png) { img.convert(Image::FORMAT_RGBA8); img.expand_x2_hq2x(); use_hidpi_image=true;}\n") + s.write("\timg.resize(img.get_width()*EDSCALE/(use_hidpi_image?2:1),img.get_height()*EDSCALE/(use_hidpi_image?2:1));\n") + s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n") + s.write("\treturn texture;\n") + s.write("}\n\n") - s.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n") + s.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n") - for x in pixmaps: + for x in pixmaps: - x=os.path.basename(str(x)) - type=x[5:-4].title().replace("_",""); - var_str=x[:-4]+"_png"; - var_str_hidpi=x[:-4]+"_hidpi_png"; - s.write("\tp_theme->set_icon(\""+type+"\",\"EditorIcons\",make_icon("+var_str+","+var_str_hidpi+"));\n"); + x = os.path.basename(str(x)) + type = x[5:-4].title().replace("_", "") + var_str = x[:-4] + "_png" + var_str_hidpi = x[:-4] + "_hidpi_png" + s.write("\tp_theme->set_icon(\"" + type + "\",\"EditorIcons\",make_icon(" + var_str + "," + var_str_hidpi + "));\n") - s.write("\n\n}\n\n"); + s.write("\n\n}\n\n") - f = open(dst,"wb") - f.write(s.getvalue()) - f.close() - s.close() + f = open(dst, "wb") + f.write(s.getvalue()) + f.close() + s.close() make_editor_icons_builder = Builder(action=make_editor_icons_action, - suffix = '.cpp', - src_suffix = '.png') -env['BUILDERS']['MakeEditorIconsBuilder']=make_editor_icons_builder -env.Alias('editor_icons',[env.MakeEditorIconsBuilder('#tools/editor/editor_icons.cpp',Glob("*.png"))]) + suffix='.cpp', + src_suffix='.png') +env['BUILDERS']['MakeEditorIconsBuilder'] = make_editor_icons_builder +env.Alias('editor_icons', [env.MakeEditorIconsBuilder('#tools/editor/editor_icons.cpp', Glob("*.png"))]) env.tool_sources.append("#tools/editor/editor_icons.cpp") Export('env') diff --git a/tools/editor/icons/icon_accept_dialog.png b/tools/editor/icons/icon_accept_dialog.png Binary files differindex 1ba2ce8db3..7530127f82 100644 --- a/tools/editor/icons/icon_accept_dialog.png +++ b/tools/editor/icons/icon_accept_dialog.png diff --git a/tools/editor/icons/icon_anchor.png b/tools/editor/icons/icon_anchor.png Binary files differindex 9c20808bdc..7b02eb448e 100644 --- a/tools/editor/icons/icon_anchor.png +++ b/tools/editor/icons/icon_anchor.png diff --git a/tools/editor/icons/icon_animation.png b/tools/editor/icons/icon_animation.png Binary files differindex 2bc13f0b4c..b333f82711 100644 --- a/tools/editor/icons/icon_animation.png +++ b/tools/editor/icons/icon_animation.png diff --git a/tools/editor/icons/icon_area.png b/tools/editor/icons/icon_area.png Binary files differindex ea7af5f9ac..31b4473d17 100644 --- a/tools/editor/icons/icon_area.png +++ b/tools/editor/icons/icon_area.png diff --git a/tools/editor/icons/icon_audio_effect_amplify.png b/tools/editor/icons/icon_audio_effect_amplify.png Binary files differnew file mode 100644 index 0000000000..9af3227d40 --- /dev/null +++ b/tools/editor/icons/icon_audio_effect_amplify.png diff --git a/tools/editor/icons/icon_auto_play.png b/tools/editor/icons/icon_auto_play.png Binary files differindex fcd3bedcda..a6be64a1d1 100644 --- a/tools/editor/icons/icon_auto_play.png +++ b/tools/editor/icons/icon_auto_play.png diff --git a/tools/editor/icons/icon_bit_map.png b/tools/editor/icons/icon_bit_map.png Binary files differnew file mode 100644 index 0000000000..50dd8157d1 --- /dev/null +++ b/tools/editor/icons/icon_bit_map.png diff --git a/tools/editor/icons/icon_bitmap_font.png b/tools/editor/icons/icon_bitmap_font.png Binary files differindex 2739248796..5334c335dc 100644 --- a/tools/editor/icons/icon_bitmap_font.png +++ b/tools/editor/icons/icon_bitmap_font.png diff --git a/tools/editor/icons/icon_bus_vu_db.png b/tools/editor/icons/icon_bus_vu_db.png Binary files differnew file mode 100644 index 0000000000..52507cae52 --- /dev/null +++ b/tools/editor/icons/icon_bus_vu_db.png diff --git a/tools/editor/icons/icon_bus_vu_empty.png b/tools/editor/icons/icon_bus_vu_empty.png Binary files differnew file mode 100644 index 0000000000..6fc3143a55 --- /dev/null +++ b/tools/editor/icons/icon_bus_vu_empty.png diff --git a/tools/editor/icons/icon_bus_vu_frozen.png b/tools/editor/icons/icon_bus_vu_frozen.png Binary files differnew file mode 100644 index 0000000000..cf128afa91 --- /dev/null +++ b/tools/editor/icons/icon_bus_vu_frozen.png diff --git a/tools/editor/icons/icon_bus_vu_full.png b/tools/editor/icons/icon_bus_vu_full.png Binary files differnew file mode 100644 index 0000000000..9e3d7a93e3 --- /dev/null +++ b/tools/editor/icons/icon_bus_vu_full.png diff --git a/tools/editor/icons/icon_canvas_layer.png b/tools/editor/icons/icon_canvas_layer.png Binary files differindex cae31fe3bc..bb32d6d3ad 100644 --- a/tools/editor/icons/icon_canvas_layer.png +++ b/tools/editor/icons/icon_canvas_layer.png diff --git a/tools/editor/icons/icon_canvas_modulate.png b/tools/editor/icons/icon_canvas_modulate.png Binary files differindex 711ebbae5f..b76e532268 100644 --- a/tools/editor/icons/icon_canvas_modulate.png +++ b/tools/editor/icons/icon_canvas_modulate.png diff --git a/tools/editor/icons/icon_color_frame.png b/tools/editor/icons/icon_color_frame.png Binary files differdeleted file mode 100644 index a82eefc10a..0000000000 --- a/tools/editor/icons/icon_color_frame.png +++ /dev/null diff --git a/tools/editor/icons/icon_color_rect.png b/tools/editor/icons/icon_color_rect.png Binary files differnew file mode 100644 index 0000000000..40b9dab605 --- /dev/null +++ b/tools/editor/icons/icon_color_rect.png diff --git a/tools/editor/icons/icon_copy_node_path.png b/tools/editor/icons/icon_copy_node_path.png Binary files differnew file mode 100644 index 0000000000..d777f132d8 --- /dev/null +++ b/tools/editor/icons/icon_copy_node_path.png diff --git a/tools/editor/icons/icon_create_new_scene_from.png b/tools/editor/icons/icon_create_new_scene_from.png Binary files differindex 908c82626c..45df9b1e25 100644 --- a/tools/editor/icons/icon_create_new_scene_from.png +++ b/tools/editor/icons/icon_create_new_scene_from.png diff --git a/tools/editor/icons/icon_cube_map.png b/tools/editor/icons/icon_cube_map.png Binary files differnew file mode 100644 index 0000000000..9c4c6fdc9f --- /dev/null +++ b/tools/editor/icons/icon_cube_map.png diff --git a/tools/editor/icons/icon_curve_2d.png b/tools/editor/icons/icon_curve_2d.png Binary files differnew file mode 100644 index 0000000000..ce46dcaad4 --- /dev/null +++ b/tools/editor/icons/icon_curve_2d.png diff --git a/tools/editor/icons/icon_curve_3d.png b/tools/editor/icons/icon_curve_3d.png Binary files differnew file mode 100644 index 0000000000..561837e4de --- /dev/null +++ b/tools/editor/icons/icon_curve_3d.png diff --git a/tools/editor/icons/icon_dynamic_font_data.png b/tools/editor/icons/icon_dynamic_font_data.png Binary files differindex 8f36106b61..5cff86c40c 100644 --- a/tools/editor/icons/icon_dynamic_font_data.png +++ b/tools/editor/icons/icon_dynamic_font_data.png diff --git a/tools/editor/icons/icon_environment.png b/tools/editor/icons/icon_environment.png Binary files differnew file mode 100644 index 0000000000..c8c4da3e8f --- /dev/null +++ b/tools/editor/icons/icon_environment.png diff --git a/tools/editor/icons/icon_error.png b/tools/editor/icons/icon_error.png Binary files differindex 0fdf5facbf..7a9bed43aa 100644 --- a/tools/editor/icons/icon_error.png +++ b/tools/editor/icons/icon_error.png diff --git a/tools/editor/icons/icon_fixed_spatial_material.png b/tools/editor/icons/icon_fixed_spatial_material.png Binary files differnew file mode 100644 index 0000000000..f26ac3be37 --- /dev/null +++ b/tools/editor/icons/icon_fixed_spatial_material.png diff --git a/tools/editor/icons/icon_g_i_probe.png b/tools/editor/icons/icon_g_i_probe.png Binary files differnew file mode 100644 index 0000000000..a15ae18675 --- /dev/null +++ b/tools/editor/icons/icon_g_i_probe.png diff --git a/tools/editor/icons/icon_g_i_probe_data.png b/tools/editor/icons/icon_g_i_probe_data.png Binary files differnew file mode 100644 index 0000000000..0aabcc49cb --- /dev/null +++ b/tools/editor/icons/icon_g_i_probe_data.png diff --git a/tools/editor/icons/icon_image_sky_box.png b/tools/editor/icons/icon_image_sky_box.png Binary files differnew file mode 100644 index 0000000000..cf80258577 --- /dev/null +++ b/tools/editor/icons/icon_image_sky_box.png diff --git a/tools/editor/icons/icon_interp_wrap_clamp.png b/tools/editor/icons/icon_interp_wrap_clamp.png Binary files differnew file mode 100644 index 0000000000..1024bd7d29 --- /dev/null +++ b/tools/editor/icons/icon_interp_wrap_clamp.png diff --git a/tools/editor/icons/icon_interp_wrap_loop.png b/tools/editor/icons/icon_interp_wrap_loop.png Binary files differnew file mode 100644 index 0000000000..3a7ddacdb2 --- /dev/null +++ b/tools/editor/icons/icon_interp_wrap_loop.png diff --git a/tools/editor/icons/icon_joystick.png b/tools/editor/icons/icon_joypad.png Binary files differindex 5df471109a..5df471109a 100644 --- a/tools/editor/icons/icon_joystick.png +++ b/tools/editor/icons/icon_joypad.png diff --git a/tools/editor/icons/icon_key_next.png b/tools/editor/icons/icon_key_next.png Binary files differindex ed7a20637f..288161d245 100644 --- a/tools/editor/icons/icon_key_next.png +++ b/tools/editor/icons/icon_key_next.png diff --git a/tools/editor/icons/icon_large_texture.png b/tools/editor/icons/icon_large_texture.png Binary files differnew file mode 100644 index 0000000000..1727e2409f --- /dev/null +++ b/tools/editor/icons/icon_large_texture.png diff --git a/tools/editor/icons/icon_load.png b/tools/editor/icons/icon_load.png Binary files differindex 98da8135f2..81835efa25 100644 --- a/tools/editor/icons/icon_load.png +++ b/tools/editor/icons/icon_load.png diff --git a/tools/editor/icons/icon_material_shader.png b/tools/editor/icons/icon_material_shader.png Binary files differindex f26ac3be37..568a45d938 100644 --- a/tools/editor/icons/icon_material_shader.png +++ b/tools/editor/icons/icon_material_shader.png diff --git a/tools/editor/icons/icon_mesh_library.png b/tools/editor/icons/icon_mesh_library.png Binary files differnew file mode 100644 index 0000000000..0bb37b1da3 --- /dev/null +++ b/tools/editor/icons/icon_mesh_library.png diff --git a/tools/editor/icons/icon_navigation_mesh.png b/tools/editor/icons/icon_navigation_mesh.png Binary files differnew file mode 100644 index 0000000000..e3bb7f775f --- /dev/null +++ b/tools/editor/icons/icon_navigation_mesh.png diff --git a/tools/editor/icons/icon_navigation_polygon.png b/tools/editor/icons/icon_navigation_polygon.png Binary files differnew file mode 100644 index 0000000000..bfc4bfb542 --- /dev/null +++ b/tools/editor/icons/icon_navigation_polygon.png diff --git a/tools/editor/icons/icon_patch_9_frame.png b/tools/editor/icons/icon_nine_patch_rect.png Binary files differindex bdd1467144..bdd1467144 100644 --- a/tools/editor/icons/icon_patch_9_frame.png +++ b/tools/editor/icons/icon_nine_patch_rect.png diff --git a/tools/editor/icons/icon_open.png b/tools/editor/icons/icon_open.png Binary files differnew file mode 100644 index 0000000000..cc05e98ebb --- /dev/null +++ b/tools/editor/icons/icon_open.png diff --git a/tools/editor/icons/icon_packed_data_container.png b/tools/editor/icons/icon_packed_data_container.png Binary files differnew file mode 100644 index 0000000000..af89da48a9 --- /dev/null +++ b/tools/editor/icons/icon_packed_data_container.png diff --git a/tools/editor/icons/icon_particles_shader.png b/tools/editor/icons/icon_particles_shader.png Binary files differnew file mode 100644 index 0000000000..3b5c5644b2 --- /dev/null +++ b/tools/editor/icons/icon_particles_shader.png diff --git a/tools/editor/icons/icon_patch_9_rect.png b/tools/editor/icons/icon_patch_9_rect.png Binary files differnew file mode 100644 index 0000000000..bdd1467144 --- /dev/null +++ b/tools/editor/icons/icon_patch_9_rect.png diff --git a/tools/editor/icons/icon_polygon_path_finder.png b/tools/editor/icons/icon_polygon_path_finder.png Binary files differnew file mode 100644 index 0000000000..9d76d872db --- /dev/null +++ b/tools/editor/icons/icon_polygon_path_finder.png diff --git a/tools/editor/icons/icon_reference_frame.png b/tools/editor/icons/icon_reference_rect.png Binary files differindex b253af477f..b253af477f 100644 --- a/tools/editor/icons/icon_reference_frame.png +++ b/tools/editor/icons/icon_reference_rect.png diff --git a/tools/editor/icons/icon_reflection_probe.png b/tools/editor/icons/icon_reflection_probe.png Binary files differnew file mode 100644 index 0000000000..a6646114fb --- /dev/null +++ b/tools/editor/icons/icon_reflection_probe.png diff --git a/tools/editor/icons/icon_reparent.png b/tools/editor/icons/icon_reparent.png Binary files differindex b3235e60c5..135ccee4ad 100644 --- a/tools/editor/icons/icon_reparent.png +++ b/tools/editor/icons/icon_reparent.png diff --git a/tools/editor/icons/icon_room.png b/tools/editor/icons/icon_room.png Binary files differindex 9390391279..840db145fd 100644 --- a/tools/editor/icons/icon_room.png +++ b/tools/editor/icons/icon_room.png diff --git a/tools/editor/icons/icon_room_bounds.png b/tools/editor/icons/icon_room_bounds.png Binary files differnew file mode 100644 index 0000000000..15b198e821 --- /dev/null +++ b/tools/editor/icons/icon_room_bounds.png diff --git a/tools/editor/icons/icon_sample_library.png b/tools/editor/icons/icon_sample_library.png Binary files differnew file mode 100644 index 0000000000..5921aa86e7 --- /dev/null +++ b/tools/editor/icons/icon_sample_library.png diff --git a/tools/editor/icons/icon_script_create.png b/tools/editor/icons/icon_script_create.png Binary files differnew file mode 100644 index 0000000000..86c19f748b --- /dev/null +++ b/tools/editor/icons/icon_script_create.png diff --git a/tools/editor/icons/icon_script_remove.png b/tools/editor/icons/icon_script_remove.png Binary files differnew file mode 100644 index 0000000000..c200b01690 --- /dev/null +++ b/tools/editor/icons/icon_script_remove.png diff --git a/tools/editor/icons/icon_shader.png b/tools/editor/icons/icon_shader.png Binary files differindex f26ac3be37..568a45d938 100644 --- a/tools/editor/icons/icon_shader.png +++ b/tools/editor/icons/icon_shader.png diff --git a/tools/editor/icons/icon_shader_material.png b/tools/editor/icons/icon_shader_material.png Binary files differindex f26ac3be37..568a45d938 100644 --- a/tools/editor/icons/icon_shader_material.png +++ b/tools/editor/icons/icon_shader_material.png diff --git a/tools/editor/icons/icon_short_cut.png b/tools/editor/icons/icon_short_cut.png Binary files differnew file mode 100644 index 0000000000..22e15c3889 --- /dev/null +++ b/tools/editor/icons/icon_short_cut.png diff --git a/tools/editor/icons/icon_spatial_shader.png b/tools/editor/icons/icon_spatial_shader.png Binary files differnew file mode 100644 index 0000000000..7608fc9036 --- /dev/null +++ b/tools/editor/icons/icon_spatial_shader.png diff --git a/tools/editor/icons/icon_spot_light.png b/tools/editor/icons/icon_spot_light.png Binary files differindex 89b0b28aa3..f52570a5cd 100644 --- a/tools/editor/icons/icon_spot_light.png +++ b/tools/editor/icons/icon_spot_light.png diff --git a/tools/editor/icons/icon_sprite_frames.png b/tools/editor/icons/icon_sprite_frames.png Binary files differnew file mode 100644 index 0000000000..5576b24f2e --- /dev/null +++ b/tools/editor/icons/icon_sprite_frames.png diff --git a/tools/editor/icons/icon_style_box_empty.png b/tools/editor/icons/icon_style_box_empty.png Binary files differnew file mode 100644 index 0000000000..f595eaaa57 --- /dev/null +++ b/tools/editor/icons/icon_style_box_empty.png diff --git a/tools/editor/icons/icon_style_box_flat.png b/tools/editor/icons/icon_style_box_flat.png Binary files differnew file mode 100644 index 0000000000..6ec6a6dd35 --- /dev/null +++ b/tools/editor/icons/icon_style_box_flat.png diff --git a/tools/editor/icons/icon_style_box_texture.png b/tools/editor/icons/icon_style_box_texture.png Binary files differnew file mode 100644 index 0000000000..f649508418 --- /dev/null +++ b/tools/editor/icons/icon_style_box_texture.png diff --git a/tools/editor/icons/icon_tab_container.png b/tools/editor/icons/icon_tab_container.png Binary files differindex dd661c5ab6..7ff3081ec1 100644 --- a/tools/editor/icons/icon_tab_container.png +++ b/tools/editor/icons/icon_tab_container.png diff --git a/tools/editor/icons/icon_tabs.png b/tools/editor/icons/icon_tabs.png Binary files differindex cc7e08a835..bef0f60660 100644 --- a/tools/editor/icons/icon_tabs.png +++ b/tools/editor/icons/icon_tabs.png diff --git a/tools/editor/icons/icon_test_cube.png b/tools/editor/icons/icon_test_cube.png Binary files differindex 6a16fb5092..4d11a69c3e 100644 --- a/tools/editor/icons/icon_test_cube.png +++ b/tools/editor/icons/icon_test_cube.png diff --git a/tools/editor/icons/icon_texture_frame.png b/tools/editor/icons/icon_texture_rect.png Binary files differindex 84e4a90bfb..84e4a90bfb 100644 --- a/tools/editor/icons/icon_texture_frame.png +++ b/tools/editor/icons/icon_texture_rect.png diff --git a/tools/editor/icons/icon_theme.png b/tools/editor/icons/icon_theme.png Binary files differnew file mode 100644 index 0000000000..55d799c722 --- /dev/null +++ b/tools/editor/icons/icon_theme.png diff --git a/tools/editor/icons/icon_tile_set.png b/tools/editor/icons/icon_tile_set.png Binary files differnew file mode 100644 index 0000000000..a1c3fccddd --- /dev/null +++ b/tools/editor/icons/icon_tile_set.png diff --git a/tools/editor/icons/icon_track_add_key.png b/tools/editor/icons/icon_track_add_key.png Binary files differindex fb86b37963..02d92439a3 100644 --- a/tools/editor/icons/icon_track_add_key.png +++ b/tools/editor/icons/icon_track_add_key.png diff --git a/tools/editor/icons/icon_track_add_key_hl.png b/tools/editor/icons/icon_track_add_key_hl.png Binary files differindex c1bfee736a..0e857f5fe2 100644 --- a/tools/editor/icons/icon_track_add_key_hl.png +++ b/tools/editor/icons/icon_track_add_key_hl.png diff --git a/tools/editor/icons/icon_viewport_container.png b/tools/editor/icons/icon_viewport_container.png Binary files differnew file mode 100644 index 0000000000..c70dee3698 --- /dev/null +++ b/tools/editor/icons/icon_viewport_container.png diff --git a/tools/editor/icons/icon_viewport_texture.png b/tools/editor/icons/icon_viewport_texture.png Binary files differnew file mode 100644 index 0000000000..ae744cc407 --- /dev/null +++ b/tools/editor/icons/icon_viewport_texture.png diff --git a/tools/editor/icons/icon_vu_db.png b/tools/editor/icons/icon_vu_db.png Binary files differnew file mode 100644 index 0000000000..405a929e2a --- /dev/null +++ b/tools/editor/icons/icon_vu_db.png diff --git a/tools/editor/icons/icon_warning.png b/tools/editor/icons/icon_warning.png Binary files differindex 0928062938..451beba820 100644 --- a/tools/editor/icons/icon_warning.png +++ b/tools/editor/icons/icon_warning.png diff --git a/tools/editor/icons/icon_world.png b/tools/editor/icons/icon_world.png Binary files differnew file mode 100644 index 0000000000..d54b979cad --- /dev/null +++ b/tools/editor/icons/icon_world.png diff --git a/tools/editor/icons/icon_world_2d.png b/tools/editor/icons/icon_world_2d.png Binary files differnew file mode 100644 index 0000000000..ebe54262ff --- /dev/null +++ b/tools/editor/icons/icon_world_2d.png diff --git a/tools/editor/icons/source/icon_accept_dialog.svg b/tools/editor/icons/source/icon_accept_dialog.svg index 8d2c307691..9f82b30c94 100644 --- a/tools/editor/icons/source/icon_accept_dialog.svg +++ b/tools/editor/icons/source/icon_accept_dialog.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="32" - inkscape:cx="6.0807642" - inkscape:cy="9.1331382" + inkscape:zoom="45.254834" + inkscape:cx="8.3712909" + inkscape:cy="7.2310094" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -59,7 +59,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -70,8 +70,10 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 3 1 C 1.89543 1 1 1.8954 1 3 L 1 4 L 15 4 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 12 2 L 13 2 L 13 3 L 12 3 L 12 2 z M 1 5 L 1 13 C 1 14.1046 1.89543 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 5 L 1 5 z M 10.474609 6.6367188 L 11.888672 8.0507812 L 8.3535156 11.585938 L 6.9394531 13 L 5.5253906 11.585938 L 4.1113281 10.171875 L 5.5253906 8.7578125 L 6.9394531 10.171875 L 10.474609 6.6367188 z " + d="M 3,1 C 1.89543,1 1,1.8954 1,3 L 1,4 15,4 15,3 C 15,1.8954 14.104569,1 13,1 Z m 9,1 1,0 0,1 -1,0 z M 1,5 1,13 c 0,1.1046 0.89543,2 2,2 l 10,0 c 1.104569,0 2,-0.8954 2,-2 L 15,5 Z M 10.474609,6.6367188 11.888672,8.0507812 6.9394531,13 4.1113281,10.171875 5.5253906,8.7578125 6.9394531,10.171875 Z" transform="translate(0,1036.3622)" - id="rect4140" /> + id="rect4140" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ssccsssccccccssssccccccccc" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_add_track.svg b/tools/editor/icons/source/icon_add_track.svg index 916199d29e..d19448efb0 100644 --- a/tools/editor/icons/source/icon_add_track.svg +++ b/tools/editor/icons/source/icon_add_track.svg @@ -18,7 +18,7 @@ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png" inkscape:export-xdpi="45" inkscape:export-ydpi="45" - sodipodi:docname="icon_add_track (copy).svg"> + sodipodi:docname="icon_add_track.svg"> <defs id="defs4" /> <sodipodi:namedview @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="32.000001" - inkscape:cx="4.2247291" - inkscape:cy="8.9595523" + inkscape:zoom="45.254835" + inkscape:cx="6.9909025" + inkscape:cy="7.4569962" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -59,7 +59,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -68,20 +68,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect + <path style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4137" - width="14" - height="1.9999478" - x="1" - y="1043.3622" /> - <rect - y="-9" - x="1037.3622" - height="2.0000017" - width="13.999966" - id="rect4158" - style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - transform="matrix(0,1,-1,0,0,0)" /> + d="M 7 1 L 7 7 L 1 7 L 1 9 L 7 9 L 7 15 L 9 15 L 9 9 L 15 9 L 15 7 L 9 7 L 9 1 L 7 1 z " + transform="translate(0,1036.3622)" + id="rect4137" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_anchor.svg b/tools/editor/icons/source/icon_anchor.svg index ff43271224..6b10be040b 100644 --- a/tools/editor/icons/source/icon_anchor.svg +++ b/tools/editor/icons/source/icon_anchor.svg @@ -18,7 +18,7 @@ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_anchor.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" - sodipodi:docname="icon_anchor (copy).svg"> + sodipodi:docname="icon_anchor.svg"> <defs id="defs4" /> <sodipodi:namedview @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" - inkscape:cx="5.8188721" - inkscape:cy="10.181863" + inkscape:cx="12.991456" + inkscape:cy="8.2347656" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -70,27 +70,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 8 1 A 3 3.0000043 0 0 0 5 4 A 3 3.0000043 0 0 0 8 7 A 3 3.0000043 0 0 0 11 4 A 3 3.0000043 0 0 0 8 1 z M 8 3 A 1.000016 1.0000174 0 0 1 9 4 A 1.000016 1.0000174 0 0 1 8 5 A 1.000016 1.0000174 0 0 1 7 4 A 1.000016 1.0000174 0 0 1 8 3 z " + d="M 8 1 A 3 3.0000043 0 0 0 5 4 A 3 3.0000043 0 0 0 7 6.8261719 L 7 7 L 5 7 L 5 9 L 7 9 L 7 12.898438 A 5.0000172 5.0000172 0 0 1 3.171875 9.2949219 L 1.2382812 9.8125 A 7 7 0 0 0 8 15 A 7 7 0 0 0 14.761719 9.8125 L 12.824219 9.2929688 A 5.0000172 5.0000172 0 0 1 9 12.896484 L 9 9 L 11 9 L 11 7 L 9 7 L 9 6.8242188 A 3 3.0000043 0 0 0 11 4 A 3 3.0000043 0 0 0 8 1 z M 8 3 A 1.000016 1.0000174 0 0 1 9 4 A 1.000016 1.0000174 0 0 1 8 5 A 1.000016 1.0000174 0 0 1 7 4 A 1.000016 1.0000174 0 0 1 8 3 z " transform="translate(0,1036.3622)" id="path4142" /> - <rect - y="1042.3622" - x="7" - height="7.0000172" - width="2" - id="rect4148" - style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 12.824219 9.2929688 A 5.0000172 5.0000172 0 0 1 8 13 A 5.0000172 5.0000172 0 0 1 3.171875 9.2949219 L 1.2382812 9.8125 A 7 7 0 0 0 8 15 A 7 7 0 0 0 14.761719 9.8125 L 12.824219 9.2929688 z " - transform="translate(0,1036.3622)" - id="path4150" /> - <rect - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4155" - width="6" - height="2" - x="5" - y="1043.3622" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_animation.svg b/tools/editor/icons/source/icon_animation.svg index 38d73cf5bb..371979345f 100644 --- a/tools/editor/icons/source/icon_animation.svg +++ b/tools/editor/icons/source/icon_animation.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="64" - inkscape:cx="10.327464" - inkscape:cy="2.5689331" + inkscape:zoom="22.627417" + inkscape:cx="9.2543315" + inkscape:cy="5.9550306" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -70,49 +70,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 14 8 A 6 6 0 0 0 8 2 z M 8 3 A 1 1 0 0 1 9 4 A 1 1 0 0 1 8 5 A 1 1 0 0 1 7 4 A 1 1 0 0 1 8 3 z M 11.441406 5 A 1 1 0 0 1 12.330078 5.5 A 1 1 0 0 1 11.964844 6.8652344 A 1 1 0 0 1 10.597656 6.5 A 1 1 0 0 1 10.964844 5.1347656 A 1 1 0 0 1 11.441406 5 z M 4.4882812 5.0019531 A 1 1 0 0 1 5.0351562 5.1347656 A 1 1 0 0 1 5.4023438 6.5 A 1 1 0 0 1 4.0351562 6.8652344 A 1 1 0 0 1 3.6699219 5.5 A 1 1 0 0 1 4.4882812 5.0019531 z M 4.5117188 9 A 1 1 0 0 1 5.4023438 9.5 A 1 1 0 0 1 5.0351562 10.865234 A 1 1 0 0 1 3.6699219 10.5 A 1 1 0 0 1 4.0351562 9.1347656 A 1 1 0 0 1 4.5117188 9 z M 11.416016 9.0019531 A 1 1 0 0 1 11.964844 9.1347656 A 1 1 0 0 1 12.330078 10.5 A 1 1 0 0 1 10.964844 10.865234 A 1 1 0 0 1 10.597656 9.5 A 1 1 0 0 1 11.416016 9.0019531 z M 8 11 A 1 1 0 0 1 9 12 A 1 1 0 0 1 8 13 A 1 1 0 0 1 7 12 A 1 1 0 0 1 8 11 z " - transform="translate(0,1036.3622)" - id="path4140" /> - <path - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 13 8 L 13 14 A 1 1 0 0 0 14 15 L 15 15 L 15 14 L 14 14 L 14 13 L 14 8 L 13 8 z " - transform="translate(0,1036.3622)" - id="rect4202" /> - <path - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 14 13.5 L 14 14 L 14.5 14 A 0.5 0.4999913 0 0 1 14 13.5 z " - transform="translate(0,1036.3622)" - id="rect4215" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4137" - width="1" - height="3.0000174" - x="12" - y="1047.3622" /> - <path - id="path4139" - transform="translate(0,1036.3622)" - d="M 13 8 L 13 14 A 1 1 0 0 0 14 15 L 15 15 L 15 14 L 14 14 L 14 13 L 14 8 L 13 8 z " - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="1050.3622" - x="14" - height="2" - width="1" - id="rect4141" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <path - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="path4145" - sodipodi:type="arc" - sodipodi:cx="14" - sodipodi:cy="1050.3622" - sodipodi:rx="2" - sodipodi:ry="2" - sodipodi:start="1.5707963" - sodipodi:end="4.712389" - d="m 14,1052.3622 a 2,2 0 0 1 -1.732051,-1 2,2 0 0 1 0,-2 2,2 0 0 1 1.732051,-1" - sodipodi:open="true" /> + d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 12 12.464844 L 12 14 L 12.001953 14 A 2 2 0 0 0 12.267578 15 A 2 2 0 0 0 14 16 L 15 16 L 15 15 L 15 14 L 14.5 14 A 0.5 0.4999913 0 0 1 14 13.5 L 14 13 L 14 8 A 6 6 0 0 0 8 2 z M 8 3 A 1 1 0 0 1 9 4 A 1 1 0 0 1 8 5 A 1 1 0 0 1 7 4 A 1 1 0 0 1 8 3 z M 11.441406 5 A 1 1 0 0 1 12.330078 5.5 A 1 1 0 0 1 11.964844 6.8652344 A 1 1 0 0 1 10.597656 6.5 A 1 1 0 0 1 10.964844 5.1347656 A 1 1 0 0 1 11.441406 5 z M 4.4882812 5.0019531 A 1 1 0 0 1 5.0351562 5.1347656 A 1 1 0 0 1 5.4023438 6.5 A 1 1 0 0 1 4.0351562 6.8652344 A 1 1 0 0 1 3.6699219 5.5 A 1 1 0 0 1 4.4882812 5.0019531 z M 4.5117188 9 A 1 1 0 0 1 5.4023438 9.5 A 1 1 0 0 1 5.0351562 10.865234 A 1 1 0 0 1 3.6699219 10.5 A 1 1 0 0 1 4.0351562 9.1347656 A 1 1 0 0 1 4.5117188 9 z M 11.416016 9.0019531 A 1 1 0 0 1 11.964844 9.1347656 A 1 1 0 0 1 12.330078 10.5 A 1 1 0 0 1 10.964844 10.865234 A 1 1 0 0 1 10.597656 9.5 A 1 1 0 0 1 11.416016 9.0019531 z M 8 11 A 1 1 0 0 1 9 12 A 1 1 0 0 1 8 13 A 1 1 0 0 1 7 12 A 1 1 0 0 1 8 11 z " + id="path4140" + transform="translate(0,1036.3622)" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_area.svg b/tools/editor/icons/source/icon_area.svg index d56043cf3b..d16ad26e23 100644 --- a/tools/editor/icons/source/icon_area.svg +++ b/tools/editor/icons/source/icon_area.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="5.5000497" - inkscape:cy="8.7464605" + inkscape:cx="-2.7642608" + inkscape:cy="8.6580722" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -68,97 +68,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect + <path style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4148" - width="2" - height="4" - x="1" - y="1047.3622" /> - <rect - y="1049.3622" - x="1" - height="1.9999304" - width="4" - id="rect4150" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="1040.3622" - x="4" - height="8.0000172" - width="2" - id="rect4152" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="-1041.3622" - x="1" - height="4" - width="2" - id="rect4154" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(1,-1)" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4156" - width="4" - height="1.9999304" - x="1" - y="-1039.3622" - transform="scale(1,-1)" /> - <rect - transform="scale(-1,-1)" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4158" - width="2" - height="4" - x="-15" - y="-1041.3622" /> - <rect - transform="scale(-1,-1)" - y="-1039.3622" - x="-15" - height="1.9999304" - width="4" - id="rect4160" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="1047.3623" - x="-15" - height="4" - width="2" - id="rect4162" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(-1,1)" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4164" - width="4" - height="1.9999304" - x="-15" - y="1049.3623" - transform="scale(-1,1)" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4168" - width="8" - height="1.9999998" - x="4" - y="1046.3622" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4170" - width="2" - height="8.0000172" - x="-12" - y="-1048.3622" - transform="scale(-1,-1)" /> - <rect - y="-1042.3622" - x="-12" - height="1.9999998" - width="8" - id="rect4172" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(-1,-1)" /> + d="M 1 1 L 1 3 L 1 5 L 3 5 L 3 3 L 5 3 L 5 1 L 1 1 z M 11 1 L 11 3 L 13 3 L 13 5 L 15 5 L 15 1 L 11 1 z M 4 4 L 4 6 L 4 10 L 4 12 L 12 12 L 12 10 L 12 4 L 4 4 z M 6 6 L 10 6 L 10 10 L 6 10 L 6 6 z M 1 11 L 1 13 L 1 15 L 3 15 L 5 15 L 5 13 L 3 13 L 3 11 L 1 11 z M 13 11 L 13 13 L 11 13 L 11 15 L 15 15 L 15 13 L 15 11 L 13 11 z " + transform="translate(0,1036.3622)" + id="rect4148" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_area_2d.svg b/tools/editor/icons/source/icon_area_2d.svg index 1373d9f0e4..ef7b16dd06 100644 --- a/tools/editor/icons/source/icon_area_2d.svg +++ b/tools/editor/icons/source/icon_area_2d.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="11.313709" - inkscape:cx="14.936968" - inkscape:cy="11.331549" + inkscape:cx="-1.5916523" + inkscape:cy="11.154772" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -68,97 +68,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect + <path style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4148" - width="2" - height="4" - x="1" - y="1047.3622" /> - <rect - y="1049.3622" - x="1" - height="1.9999304" - width="4" - id="rect4150" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="1040.3622" - x="4" - height="8.0000172" - width="2" - id="rect4152" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="-1041.3622" - x="1" - height="4" - width="2" - id="rect4154" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(1,-1)" /> - <rect - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4156" - width="4" - height="1.9999304" - x="1" - y="-1039.3622" - transform="scale(1,-1)" /> - <rect - transform="scale(-1,-1)" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4158" - width="2" - height="4" - x="-15" - y="-1041.3622" /> - <rect - transform="scale(-1,-1)" - y="-1039.3622" - x="-15" - height="1.9999304" - width="4" - id="rect4160" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="1047.3623" - x="-15" - height="4" - width="2" - id="rect4162" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(-1,1)" /> - <rect - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4164" - width="4" - height="1.9999304" - x="-15" - y="1049.3623" - transform="scale(-1,1)" /> - <rect - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4168" - width="8" - height="1.9999998" - x="4" - y="1046.3622" /> - <rect - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4170" - width="2" - height="8.0000172" - x="-12" - y="-1048.3622" - transform="scale(-1,-1)" /> - <rect - y="-1042.3622" - x="-12" - height="1.9999998" - width="8" - id="rect4172" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(-1,-1)" /> + d="M 1 1 L 1 3 L 1 5 L 3 5 L 3 3 L 5 3 L 5 1 L 1 1 z M 11 1 L 11 3 L 13 3 L 13 5 L 15 5 L 15 1 L 11 1 z M 4 4 L 4 6 L 4 10 L 4 12 L 12 12 L 12 10 L 12 4 L 4 4 z M 6 6 L 10 6 L 10 10 L 6 10 L 6 6 z M 1 11 L 1 13 L 1 15 L 3 15 L 5 15 L 5 13 L 3 13 L 3 11 L 1 11 z M 13 11 L 13 13 L 11 13 L 11 15 L 15 15 L 15 13 L 15 11 L 13 11 z " + transform="translate(0,1036.3622)" + id="rect4148" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_arrow_left.svg b/tools/editor/icons/source/icon_arrow_left.svg index 7af9be05d8..75a9ef0d68 100644 --- a/tools/editor/icons/source/icon_arrow_left.svg +++ b/tools/editor/icons/source/icon_arrow_left.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" - inkscape:cx="5.5903114" - inkscape:cy="9.1977698" + inkscape:cx="-0.2534386" + inkscape:cy="9.1352698" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -68,30 +68,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect - style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4352" - width="9" - height="2.0000174" - x="6" - y="1043.3622" /> <path - transform="matrix(0,1.2810265,0.92450034,0,964.29952,1037.9571)" - inkscape:transform-center-y="-9.6789057e-05" - d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z" - inkscape:randomized="0" - inkscape:rounded="0" - inkscape:flatsided="false" - sodipodi:arg2="1.5707963" - sodipodi:arg1="0.52359878" - sodipodi:r2="1.8027756" - sodipodi:r1="3.6055512" - sodipodi:cy="-1038.3622" - sodipodi:cx="5" - sodipodi:sides="3" - id="path4435" - style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-linecap:round;stroke-opacity:1" - sodipodi:type="star" - inkscape:transform-center-x="1.1667546" /> + style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 6 4 L 3.5 6 L 1 8 L 3.5 10 L 6 12 L 6 9 L 15 9 L 15 7 L 6 7 L 6 4 z " + transform="translate(0,1036.3622)" + id="rect4352" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_arrow_right.svg b/tools/editor/icons/source/icon_arrow_right.svg index 860a6f1481..a7600699f7 100644 --- a/tools/editor/icons/source/icon_arrow_right.svg +++ b/tools/editor/icons/source/icon_arrow_right.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" - inkscape:cx="6.7465614" - inkscape:cy="9.3227698" + inkscape:cx="0.9028114" + inkscape:cy="9.2602698" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -59,7 +59,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -70,8 +70,9 @@ transform="translate(0,-1036.3622)"> <path style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 10,1048.3622 2.5,-2 2.5,-2 -2.5,-2 -2.5,-2 0,3 -9,0 0,2 9,0 0,3 z" + d="m 10,1048.3622 5,-4 -5,-4 0,3 -9,0 0,2 9,0 z" id="rect4352" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_auto_play.svg b/tools/editor/icons/source/icon_auto_play.svg index 00bc96aac5..d4e1068ebf 100644 --- a/tools/editor/icons/source/icon_auto_play.svg +++ b/tools/editor/icons/source/icon_auto_play.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="64" - inkscape:cx="6.4431479" - inkscape:cy="7.7277865" + inkscape:zoom="32" + inkscape:cx="9.592521" + inkscape:cy="9.4268437" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -60,7 +60,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -70,40 +70,9 @@ id="layer1" transform="translate(0,-1036.3622)"> <path - style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" - d="m 2,1049.3622 0,-10 8,0 4,5 -4,5 z" - id="path4164" - inkscape:connector-curvature="0" /> - <rect - y="1043.3622" - x="4" - height="3.9999824" - width="1" - id="rect4162" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" - d="m 11,1044.3622 -2,-2 0,4 z" - id="path4166" - inkscape:connector-curvature="0" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4168" - width="1" - height="3.9999824" - x="7" - y="1043.3622" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4170" - width="2" - height="0.99994755" - x="5" - y="1044.3622" /> - <path - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 6 5 C 4.8954305 5 4 5.8954 4 7 L 5 7 A 1 1 0 0 1 6 6 A 1 1 0 0 1 7 7 L 8 7 C 8 5.8954 7.1045695 5 6 5 z " + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 2 2 A 1.0001 1.0001 0 0 0 1 3 L 1 13 A 1.0001 1.0001 0 0 0 2 14 L 10 14 A 1.0001 1.0001 0 0 0 10.78125 13.625 L 14.78125 8.625 A 1.0001 1.0001 0 0 0 14.78125 7.3769531 L 10.78125 2.3769531 A 1.0001 1.0001 0 0 0 10 2 L 2 2 z M 3 4 L 9.5195312 4 L 12.71875 8 L 9.5195312 12 L 3 12 L 3 4 z M 6 5 C 4.8954305 5 4 5.8954 4 7 L 4 11 L 5 11 L 5 9 L 7 9 L 7 11 L 8 11 L 8 7 C 8 5.8954 7.1045695 5 6 5 z M 6 6 A 1 1 0 0 1 7 7 L 7 8 L 5 8 L 5 7 A 1 1 0 0 1 6 6 z M 9 6 L 9 10 L 11 8 L 9 6 z " transform="translate(0,1036.3622)" - id="path4172" /> + id="path4164" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_back_buffer_copy.svg b/tools/editor/icons/source/icon_back_buffer_copy.svg index 150421d7dd..17d83ed73f 100644 --- a/tools/editor/icons/source/icon_back_buffer_copy.svg +++ b/tools/editor/icons/source/icon_back_buffer_copy.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="12.102474" - inkscape:cy="8.4888344" + inkscape:cx="3.8381635" + inkscape:cy="8.4004461" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -59,7 +59,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -68,57 +68,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect + <path style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4146" - width="2" - height="9" - x="1" - y="1037.3622" /> - <rect - y="1037.3622" - x="1" - height="2.0000174" - width="8" - id="rect4148" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="-1051.3622" - x="-15" - height="9" - width="2" - id="rect4150" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(-1,-1)" /> - <rect - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4152" - width="7" - height="2.0000174" - x="-15" - y="-1051.3622" - transform="scale(-1,-1)" /> - <rect - transform="scale(-1,-1)" - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4154" - width="2" - height="9" - x="-9" - y="-1051.3622" /> - <rect - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4156" - width="8" - height="2.0000174" - x="7" - y="1040.3622" /> - <rect - style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4158" - width="5" - height="2.0000174" - x="1" - y="1046.3622" /> + d="M 1 1 L 1 3 L 1 10 L 1 12 L 6 12 L 6 10 L 3 10 L 3 3 L 9 3 L 9 1 L 3 1 L 1 1 z M 7 4 L 7 6 L 7 15 L 9 15 L 15 15 L 15 13 L 15 6 L 15 4 L 7 4 z M 9 6 L 13 6 L 13 13 L 9 13 L 9 6 z " + transform="translate(0,1036.3622)" + id="rect4146" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_bake.svg b/tools/editor/icons/source/icon_bake.svg index 7f1e9b4ae8..ca07bca379 100644 --- a/tools/editor/icons/source/icon_bake.svg +++ b/tools/editor/icons/source/icon_bake.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="4.5449307" - inkscape:cy="12.981869" + inkscape:cx="-3.7193798" + inkscape:cy="12.893481" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -60,7 +60,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -71,22 +71,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z " + d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z M 6 8 L 6 9 L 10 9 L 10 8 L 6 8 z " transform="translate(0,1036.3622)" id="rect4155" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4173" - width="12" - height="2.0000174" - x="2" - y="1037.3622" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4159" - width="4" - height="1.0000174" - x="6" - y="1044.3622" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_baked_light.svg b/tools/editor/icons/source/icon_baked_light.svg index 7f1e9b4ae8..98dc3135f6 100644 --- a/tools/editor/icons/source/icon_baked_light.svg +++ b/tools/editor/icons/source/icon_baked_light.svg @@ -18,7 +18,7 @@ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" - sodipodi:docname="icon_bake.svg"> + sodipodi:docname="icon_baked_light.svg"> <defs id="defs4" /> <sodipodi:namedview @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="4.5449307" - inkscape:cy="12.981869" + inkscape:cx="6.1801151" + inkscape:cy="10.551189" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -60,7 +60,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -71,22 +71,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z " + d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z M 6 8 L 6 9 L 10 9 L 10 8 L 6 8 z " transform="translate(0,1036.3622)" id="rect4155" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4173" - width="12" - height="2.0000174" - x="2" - y="1037.3622" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4159" - width="4" - height="1.0000174" - x="6" - y="1044.3622" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_baked_light_instance.svg b/tools/editor/icons/source/icon_baked_light_instance.svg index 434bf0f6fc..d854378f12 100644 --- a/tools/editor/icons/source/icon_baked_light_instance.svg +++ b/tools/editor/icons/source/icon_baked_light_instance.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="-3.1006614" - inkscape:cy="12.893481" + inkscape:cx="10.864698" + inkscape:cy="11.302491" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -71,22 +71,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z " + d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z M 6 8 L 6 9 L 10 9 L 10 8 L 6 8 z " transform="translate(0,1036.3622)" id="rect4155" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4173" - width="12" - height="2.0000174" - x="2" - y="1037.3622" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4159" - width="4" - height="1.0000174" - x="6" - y="1044.3622" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_baked_light_sampler.svg b/tools/editor/icons/source/icon_baked_light_sampler.svg index aa6e6e26d0..2dc7c39621 100644 --- a/tools/editor/icons/source/icon_baked_light_sampler.svg +++ b/tools/editor/icons/source/icon_baked_light_sampler.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" - inkscape:cx="3.5600026" - inkscape:cy="5.9708001" + inkscape:cx="9.2162526" + inkscape:cy="7.9395501" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -71,20 +71,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 7 15 L 7 13 L 3 13 L 3 7 L 7 7 L 13 7 L 15 7 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 6 8 L 6 9 L 7 9 L 7 8 L 6 8 z " + d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 7 15 L 7 13 L 3 13 L 3 7 L 7 7 L 13 7 L 15 7 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 6 8 L 6 9 L 7 9 L 7 8 L 6 8 z M 10 9 A 1 1 0 0 0 9 10 L 9 14 A 1 1 0 0 0 10 15 L 14 15 A 1 1 0 0 0 15 14 L 15 10 A 1 1 0 0 0 14 9 L 10 9 z M 13 10 A 1 1 0 0 1 14 11 A 1 1 0 0 1 13 12 A 1 1 0 0 1 12 11 A 1 1 0 0 1 13 10 z M 11 12 A 1 1 0 0 1 12 13 A 1 1 0 0 1 11 14 A 1 1 0 0 1 10 13 A 1 1 0 0 1 11 12 z " transform="translate(0,1036.3622)" id="rect4155" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4173" - width="12" - height="2.0000174" - x="2" - y="1037.3622" /> - <path - style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 10 9 A 1 1 0 0 0 9 10 L 9 14 A 1 1 0 0 0 10 15 L 14 15 A 1 1 0 0 0 15 14 L 15 10 A 1 1 0 0 0 14 9 L 10 9 z M 13 10 A 1 1 0 0 1 14 11 A 1 1 0 0 1 13 12 A 1 1 0 0 1 12 11 A 1 1 0 0 1 13 10 z M 11 12 A 1 1 0 0 1 12 13 A 1 1 0 0 1 11 14 A 1 1 0 0 1 10 13 A 1 1 0 0 1 11 12 z " - transform="translate(0,1036.3622)" - id="rect4156" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_bit_map.svg b/tools/editor/icons/source/icon_bit_map.svg new file mode 100644 index 0000000000..fbaf573af6 --- /dev/null +++ b/tools/editor/icons/source/icon_bit_map.svg @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_bit_map.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="-0.178935" + inkscape:cy="8.367044" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1 1 L 1 3 L 3 3 L 3 1 L 1 1 z M 3 3 L 3 5 L 5 5 L 5 3 L 3 3 z M 5 3 L 7 3 L 7 1 L 5 1 L 5 3 z M 7 3 L 7 5 L 9 5 L 9 3 L 7 3 z M 9 3 L 11 3 L 11 1 L 9 1 L 9 3 z M 11 3 L 11 5 L 13 5 L 13 3 L 11 3 z M 13 3 L 15 3 L 15 1 L 13 1 L 13 3 z M 13 5 L 13 7 L 15 7 L 15 5 L 13 5 z M 13 7 L 11 7 L 11 9 L 13 9 L 13 7 z M 13 9 L 13 11 L 15 11 L 15 9 L 13 9 z M 13 11 L 11 11 L 11 13 L 13 13 L 13 11 z M 13 13 L 13 15 L 15 15 L 15 13 L 13 13 z M 11 13 L 9 13 L 9 15 L 11 15 L 11 13 z M 9 13 L 9 11 L 7 11 L 7 13 L 9 13 z M 7 13 L 5 13 L 5 15 L 7 15 L 7 13 z M 5 13 L 5 11 L 3 11 L 3 13 L 5 13 z M 3 13 L 1 13 L 1 15 L 3 15 L 3 13 z M 3 11 L 3 9 L 1 9 L 1 11 L 3 11 z M 3 9 L 5 9 L 5 7 L 3 7 L 3 9 z M 3 7 L 3 5 L 1 5 L 1 7 L 3 7 z M 5 7 L 7 7 L 7 5 L 5 5 L 5 7 z M 7 7 L 7 9 L 9 9 L 9 7 L 7 7 z M 9 7 L 11 7 L 11 5 L 9 5 L 9 7 z M 9 9 L 9 11 L 11 11 L 11 9 L 9 9 z M 7 9 L 5 9 L 5 11 L 7 11 L 7 9 z " + id="rect4170" + transform="translate(0,1036.3622)" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_bitmap_font.svg b/tools/editor/icons/source/icon_bitmap_font.svg index fa9fdaf5c5..70749923d5 100644 --- a/tools/editor/icons/source/icon_bitmap_font.svg +++ b/tools/editor/icons/source/icon_bitmap_font.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" - inkscape:cx="10.302728" - inkscape:cy="7.9861624" + inkscape:cx="5.619442" + inkscape:cy="6.940754" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -60,7 +60,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -69,62 +69,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4212" - width="14" - height="2" - x="1" - y="1037.3622" /> - <rect - y="1037.3622" - x="7" - height="14.000017" - width="2" - id="rect4214" - style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <rect - style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4216" - width="6" - height="0.99999976" - x="5" - y="1050.3622" /> - <path - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - d="M 1 1 L 1 3 L 1 5 L 2 5 L 2 4 L 3 4 L 3 3 L 4 3 L 4 1 L 2 1 L 1 1 z " - transform="translate(0,1036.3622)" - id="rect4218" /> <path - style="opacity:1;fill:#be9cfc;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - d="M 12 1 L 12 3 L 13 3 L 13 4 L 14 4 L 14 5 L 15 5 L 15 3 L 15 1 L 14 1 L 12 1 z " - transform="translate(0,1036.3622)" - id="rect4220" /> - <rect - style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4259" - width="1" - height="1" - x="9" - y="1049.3622" /> - <rect - y="1049.3622" - x="6" - height="1" - width="1" - id="rect4261" - style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <path - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - d="M 4 1 L 4 3 L 7 3 L 7 6 L 9 6 L 9 3 L 12 3 L 12 1 L 4 1 z " - transform="translate(0,1036.3622)" - id="rect4276" /> - <rect - style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4307" - width="2" - height="5" - x="7" - y="1042.3622" /> + style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="m 1,1037.3622 0,2 0,2 1,0 0,-1 1,0 0,-1 4,0 0,3 0,5 0,2 -1,0 0,1 -1,0 0,1 6,0 0,-1 -1,0 0,-1 -1,0 0,-10 4,0 0,1 1,0 0,1 1,0 0,-2 0,-2 -13,0 -1,0 z" + id="rect4212" + inkscape:connector-curvature="0" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_canvas_layer.svg b/tools/editor/icons/source/icon_canvas_layer.svg index a26edd7d6d..794d832eea 100644 --- a/tools/editor/icons/source/icon_canvas_layer.svg +++ b/tools/editor/icons/source/icon_canvas_layer.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="-3.1074492" - inkscape:cy="10.973033" + inkscape:cx="-2.2677599" + inkscape:cy="10.08915" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -64,7 +64,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -74,35 +74,9 @@ id="layer1" transform="translate(0,-1036.3622)"> <path - sodipodi:nodetypes="cscsccccsssc" - inkscape:connector-curvature="0" - id="path4146" - d="m 2.920797,1046.3957 c -0.2637264,0.3 -0.4203983,0.7296 -0.4203983,1.2383 0,1.6277 -3.13814186,-0.1781 -0.337569,2.6703 0.8838207,0.899 2.6543881,0.6701 3.538224,-0.2288 0.8838352,-0.899 0.8838163,-2.3565 0,-3.2554 -1.1002211,-1.1191 -2.200058,-1.0845 -2.7802567,-0.4244 z m 2.3801743,-1.6103 2.4004918,2.4416 6.8013899,-6.9177 c 0.662863,-0.6742 0.662863,-1.7673 0,-2.4415 -0.662877,-0.6741 -1.737613,-0.6741 -2.400491,0 z" - style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 3 1 A 2 2 0 0 0 1 3 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 L 3 1 z " + style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 3 1 A 2 2 0 0 0 1 3 L 1 9 L 2 9 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 L 9 2 L 9 1 L 3 1 z M 13.302734 1 C 12.868331 1 12.433001 1.1688094 12.101562 1.5058594 L 5.3007812 8.4238281 L 7.7011719 10.865234 L 14.501953 3.9472656 C 15.164816 3.2730656 15.164816 2.1800594 14.501953 1.5058594 C 14.170515 1.1688094 13.737138 1 13.302734 1 z M 14 7 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 7 14 L 7 15 L 13 15 A 2 2 0 0 0 15 13 L 15 7 L 14 7 z M 4.1152344 9.578125 C 3.6302227 9.5294 3.2100212 9.7031531 2.9199219 10.033203 C 2.6561955 10.333203 2.5 10.762784 2.5 11.271484 C 2.5 12.899184 -0.63846349 11.093006 2.1621094 13.941406 C 3.0459301 14.840406 4.817336 14.611791 5.7011719 13.712891 C 6.5850071 12.813891 6.5849882 11.355931 5.7011719 10.457031 C 5.1510613 9.8974813 4.6002461 9.62685 4.1152344 9.578125 z " transform="translate(0,1036.3622)" - id="path4160" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4164" - width="6" - height="1" - x="3" - y="1037.3622" /> - <rect - y="-2" - x="1039.3622" - height="1" - width="6" - id="rect4166" - style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="matrix(0,1,-1,0,0,0)" /> - <path - style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 13,1051.3622 a 2,2 0 0 0 2,-2 l 0,-6 -1,0 0,6 a 1.0000174,1.0000174 0 0 1 -1,1 l -6,0 0,1 6,0 z" - id="path4169" - inkscape:connector-curvature="0" /> + id="path4146" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_canvas_modulate.svg b/tools/editor/icons/source/icon_canvas_modulate.svg index 450823e005..8f8bd55f82 100644 --- a/tools/editor/icons/source/icon_canvas_modulate.svg +++ b/tools/editor/icons/source/icon_canvas_modulate.svg @@ -20,7 +20,44 @@ inkscape:export-ydpi="90" sodipodi:docname="icon_canvas_modulate.svg"> <defs - id="defs4" /> + id="defs4"> + <clipPath + id="clipPath4253" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + id="path4255" + d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </clipPath> + <clipPath + id="clipPath4199" + clipPathUnits="userSpaceOnUse"> + <path + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z" + id="path4201" + inkscape:connector-curvature="0" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4392"> + <path + style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 8.072266,1041.3622 a 5,5 0 0 0 -3.607422,1.4648 5,5 0 0 0 0,7.0704 5,5 0 0 0 7.070312,0 l -1.416015,-1.4161 A 3,3 0 0 1 8,1049.3622 a 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 2.119141,0.8809 l 1.416015,-1.4161 a 5,5 0 0 0 -3.46289,-1.4648 z" + id="path4394" + inkscape:connector-curvature="0" /> + </clipPath> + <clipPath + id="clipPath4196" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + id="path4198" + d="m 8.0624999,1025.8622 a 3.375,2.9999997 0 0 0 -3.375,3 3.375,2.9999997 0 0 0 1.6875,2.5957 l 0,9.8115 a 3.375,2.9999997 0 0 0 -1.6875,2.5928 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.3750001,-3 3.375,2.9999997 0 0 0 -1.6875001,-2.5957 l 0,-8.7832 11.9311511,10.6054 a 3.375,2.9999997 0 0 0 -0.118651,0.7735 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -0.873413,0.1025 l -11.927857,-10.6025 9.884399,0 a 3.375,2.9999997 0 0 0 2.916871,1.5 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -2.920166,1.5 l -11.037964,0 a 3.375,2.9999997 0 0 0 -2.9168701,-1.5 z" + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </clipPath> + </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" @@ -28,9 +65,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="16" - inkscape:cx="7.3785882" - inkscape:cy="11.139886" + inkscape:zoom="45.254834" + inkscape:cx="10.091501" + inkscape:cy="9.4358129" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -46,7 +83,10 @@ inkscape:window-height="1016" inkscape:window-x="0" inkscape:window-y="27" - inkscape:window-maximized="1"> + inkscape:window-maximized="1" + inkscape:snap-midpoints="true" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> <inkscape:grid type="xygrid" id="grid3336" @@ -60,7 +100,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -69,39 +109,29 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4159" - width="10" - height="10.000017" - x="3" - y="1039.3622" /> <path style="fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 1,1037.3622 0,2 0,12 2,0 12,0 0,-2 0,-12 -2,0 -10,0 z m 2,2 10,0 0,10 -10,0 z" + d="m 1,1037.3622 0,14 14,0 0,-14 z m 2,2 10,0 0,10 -10,0 z" id="rect4280" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccccccccccc" /> - <ellipse - style="fill:#ff0000;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path4153" - cx="6.5" - cy="1045.8622" - rx="2.5" - ry="2.4999871" /> - <ellipse - style="fill:#0000ff;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="ellipse4157" - cx="8" - cy="1042.8622" - rx="2.5" - ry="2.4999938" /> - <ellipse - ry="2.4999936" - rx="2.5" - cy="1045.8622" - cx="9.5" - id="ellipse4155" - style="fill:#00ff00;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + sodipodi:nodetypes="cccccccccc" /> + <path + inkscape:connector-curvature="0" + id="path4183" + d="m 12,1048.3622 -5,0 5,-5 z" + style="fill:#70bfff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + sodipodi:nodetypes="cccc" /> + <path + style="fill:#ff7070;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 4,1040.3622 5,0 -5,5 z" + id="path4185" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <path + sodipodi:nodetypes="ccccccc" + inkscape:connector-curvature="0" + id="path4187" + d="m 4,1048.3622 0,-3 5,-5 3,0 0,3 -5,5 z" + style="fill:#7aff70;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_color_rect.svg b/tools/editor/icons/source/icon_color_rect.svg new file mode 100644 index 0000000000..76bf6596a9 --- /dev/null +++ b/tools/editor/icons/source/icon_color_rect.svg @@ -0,0 +1,156 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_color_rect.svg"> + <defs + id="defs4"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4253"> + <path + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z" + id="path4255" + inkscape:connector-curvature="0" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4199"> + <path + inkscape:connector-curvature="0" + id="path4201" + d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z" + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </clipPath> + <clipPath + id="clipPath4392" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + id="path4394" + d="m 8.072266,1041.3622 a 5,5 0 0 0 -3.607422,1.4648 5,5 0 0 0 0,7.0704 5,5 0 0 0 7.070312,0 l -1.416015,-1.4161 A 3,3 0 0 1 8,1049.3622 a 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 2.119141,0.8809 l 1.416015,-1.4161 a 5,5 0 0 0 -3.46289,-1.4648 z" + style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4196"> + <path + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 8.0624999,1025.8622 a 3.375,2.9999997 0 0 0 -3.375,3 3.375,2.9999997 0 0 0 1.6875,2.5957 l 0,9.8115 a 3.375,2.9999997 0 0 0 -1.6875,2.5928 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.3750001,-3 3.375,2.9999997 0 0 0 -1.6875001,-2.5957 l 0,-8.7832 11.9311511,10.6054 a 3.375,2.9999997 0 0 0 -0.118651,0.7735 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -0.873413,0.1025 l -11.927857,-10.6025 9.884399,0 a 3.375,2.9999997 0 0 0 2.916871,1.5 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -2.920166,1.5 l -11.037964,0 a 3.375,2.9999997 0 0 0 -2.9168701,-1.5 z" + id="path4198" + inkscape:connector-curvature="0" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="9.9050022" + inkscape:cy="11.383887" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <rect + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4154" + width="1" + height="14" + x="1" + y="1037.3622" /> + <rect + y="1050.3622" + x="1" + height="0.9999826" + width="14" + id="rect4156" + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4158" + width="14" + height="0.9999826" + x="1" + y="1037.3622" /> + <rect + y="1037.3622" + x="14" + height="14" + width="1" + id="rect4160" + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + style="fill:#70bfff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 13,1049.3622 -6,0 6,-6 z" + id="path4168" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4170" + d="m 3,1039.3622 6,0 -6,6 z" + style="fill:#ff7070;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:#7aff70;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 3,1049.3622 0,-4 6,-6 4,0 0,4 -6,6 z" + id="path4172" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccc" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_connect.svg b/tools/editor/icons/source/icon_connect.svg index 2261765bdf..745d3cc436 100644 --- a/tools/editor/icons/source/icon_connect.svg +++ b/tools/editor/icons/source/icon_connect.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627418" - inkscape:cx="9.0509434" - inkscape:cy="11.261328" + inkscape:cx="0.78663326" + inkscape:cy="12.940707" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -59,7 +59,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -68,52 +68,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect - y="1043.3622" - x="1" - height="1.9999478" - width="5" - id="rect4155" - style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4157" - width="4" - height="12" - x="7" - y="1038.3622" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4159" - width="3" - height="2" - x="11" - y="1040.3622" /> - <rect - y="1046.3622" - x="11" - height="2" - width="3" - id="rect4161" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <circle - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path4163" - cx="7" - cy="1040.3622" - r="2" /> - <rect - y="1040.3622" - x="5" - height="8.0000172" - width="4" - id="rect4165" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <circle - r="2" - cy="1048.3622" - cx="7" - id="circle4167" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 7 2 A 2 2 0 0 0 5 4 L 5 7 L 1 7 L 1 9 L 5 9 L 5 12 A 2 2 0 0 0 7 14 L 11 14 L 11 12 L 14 12 L 14 10 L 11 10 L 11 6 L 14 6 L 14 4 L 11 4 L 11 2 L 7 2 z " + transform="translate(0,1036.3622)" + id="rect4155" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_connection_and_groups.svg b/tools/editor/icons/source/icon_connection_and_groups.svg index 97f615d9bc..5468312b4b 100644 --- a/tools/editor/icons/source/icon_connection_and_groups.svg +++ b/tools/editor/icons/source/icon_connection_and_groups.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627418" - inkscape:cx="4.8878469" - inkscape:cy="12.667351" + inkscape:cx="-3.3764632" + inkscape:cy="12.578963" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -68,97 +68,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect - y="1048.3622" - x="2" - height="0.99993038" - width="6" - id="rect4155" - style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4157" - width="2" - height="6.9999485" - x="10" - y="1045.3622" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4159" - width="2" - height="0.9999826" - x="12" - y="1046.3622" /> - <rect - y="1050.3622" - x="12" - height="0.9999826" - width="2" - id="rect4161" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <ellipse - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path4163" - cx="10" - cy="1047.3622" - rx="2" - ry="1.9999913" /> - <circle - r="2" - cy="1050.3622" - cx="10" - id="circle4167" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="1047.3623" - x="8" - height="2.9998953" - width="2" - id="rect4201" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4203" - width="12" - height="1" - x="2" - y="1036.3622" /> - <rect - y="1042.3622" - x="2" - height="1" - width="12" - id="rect4205" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="-3" - x="1036.3622" - height="1" - width="6.0000348" - id="rect4207" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="matrix(0,1,-1,0,0,0)" /> - <rect - transform="matrix(0,1,-1,0,0,0)" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4209" - width="6.0000348" - height="1" - x="1036.3622" - y="-14" /> - <ellipse - ry="1.5000032" - rx="1.5" - cy="1039.8622" - cx="5.5" - id="ellipse4214" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <ellipse - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="ellipse4216" - cx="10.5" - cy="1039.8622" - rx="1.5" - ry="1.5000032" /> + <path + style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 2 0 L 2 1 L 2 6 L 2 7 L 14 7 L 14 6 L 14 0 L 3 0 L 2 0 z M 3 1 L 13 1 L 13 6 L 3 6 L 3 1 z M 5.5 2 A 1.5 1.5000032 0 0 0 4 3.5 A 1.5 1.5000032 0 0 0 5.5 5 A 1.5 1.5000032 0 0 0 7 3.5 A 1.5 1.5000032 0 0 0 5.5 2 z M 10.5 2 A 1.5 1.5000032 0 0 0 9 3.5 A 1.5 1.5000032 0 0 0 10.5 5 A 1.5 1.5000032 0 0 0 12 3.5 A 1.5 1.5000032 0 0 0 10.5 2 z M 10 9 A 2 1.9999913 0 0 0 8 11 L 8 12 L 2 12 L 2 13 L 8 13 L 8 14 A 2 2 0 0 0 10 16 L 12 16 L 12 15 L 14 15 L 14 14 L 12 14 L 12 11 L 14 11 L 14 10 L 12 10 L 12 9 L 10 9 z " + transform="translate(0,1036.3622)" + id="rect4155" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_copy_node_path.svg b/tools/editor/icons/source/icon_copy_node_path.svg new file mode 100644 index 0000000000..9f33c5e54d --- /dev/null +++ b/tools/editor/icons/source/icon_copy_node_path.svg @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/godotengine/godot/tools/editor/icons/con_script_create.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_copy_node_path.svg"> + <defs + id="defs4"> + <clipPath + id="clipPath4253" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + id="path4255" + d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="21.189633" + inkscape:cx="12.640765" + inkscape:cy="9.6848443" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="false" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <circle + cy="1048.3622" + cx="3" + id="ellipse4234" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + ry="1.0000174" + rx="1" /> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 2 1 C 1.4477381 1.0001 1.0000552 1.4477 1 2 L 1 14 C 1.0000552 14.5523 1.4477381 14.9999 2 15 L 14 15 C 14.552262 14.9999 14.999945 14.5523 15 14 L 15 6 L 10 1 L 2 1 z M 3 3 L 9 3 L 9 6 C 9 6.554 9.4459905 7 10 7 L 13 7 L 13 13 L 3 13 L 3 3 z M 6 8 L 4 12 L 6 12 L 8 8 L 6 8 z M 10 8 L 8 12 L 10 12 L 12 8 L 10 8 z " + transform="translate(0,1036.3622)" + id="rect4178" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_create_new_scene_from.svg b/tools/editor/icons/source/icon_create_new_scene_from.svg index f5a456773c..529553bbd3 100644 --- a/tools/editor/icons/source/icon_create_new_scene_from.svg +++ b/tools/editor/icons/source/icon_create_new_scene_from.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="4.1061535" - inkscape:cy="9.360052" + inkscape:cx="-3.7255471" + inkscape:cy="8.1847434" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -46,7 +46,10 @@ inkscape:window-height="1016" inkscape:window-x="0" inkscape:window-y="27" - inkscape:window-maximized="1"> + inkscape:window-maximized="1" + inkscape:snap-midpoints="true" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> <inkscape:grid type="xygrid" id="grid3336" /> @@ -59,7 +62,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -70,9 +73,11 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 1 7 L 1 13 A 2 2 0 0 0 3 15 L 15 15 L 15 7 L 1 7 z M 4 9 L 5 9 L 5 11 L 7 11 L 7 12 L 5 12 L 5 14 L 4 14 L 4 12 L 2 12 L 2 11 L 4 11 L 4 9 z " + d="m 1,7 0,6 c 0,1.104569 0.8954305,2 2,2 l 7,0 0,-1 -2,0 0,-4 2,0 0,-2 4,0 0,2 1,0 0,-3 z" transform="translate(0,1036.3622)" - id="rect4136" /> + id="rect4136" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssccccccccccc" /> <path style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 0.7112932,1040.3831 1,1042.3622 l 2.2438279,-0.3273 -0.8182578,-1.9018 -1.7142769,0.25 z m 3.6933293,-0.5387 0.8182578,1.9018 1.9790524,-0.2887 -0.8182579,-1.9018 -1.9790523,0.2887 z m 3.9581047,-0.5775 0.8182579,1.9018 1.9790519,-0.2887 -0.818257,-1.9018 -1.9790528,0.2887 z m 3.9581048,-0.5774 0.818258,1.9018 1.714277,-0.25 -0.288707,-1.9791 -2.243828,0.3273 z" @@ -80,5 +85,17 @@ inkscape:connector-curvature="0" inkscape:transform-center-x="-6.7823301" inkscape:transform-center-y="-2" /> + <circle + r="0" + cy="1047.3622" + cx="-14" + id="ellipse4234" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> + <path + sodipodi:nodetypes="ccccccccccccc" + inkscape:connector-curvature="0" + id="path4155" + d="m 13,1049.3622 2,0 0,-2 -2,0 0,-2 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 z" + style="fill:#84ffb1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_cube_map.svg b/tools/editor/icons/source/icon_cube_map.svg new file mode 100644 index 0000000000..4fd86b1233 --- /dev/null +++ b/tools/editor/icons/source/icon_cube_map.svg @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="icon_cube_map.svg" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png" + inkscape:version="0.91 r13725" + version="1.1" + id="svg2" + viewBox="0 0 16 16" + height="16" + width="16"> + <sodipodi:namedview + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-intersection-paths="false" + inkscape:object-paths="false" + inkscape:window-maximized="1" + inkscape:window-y="27" + inkscape:window-x="0" + inkscape:window-height="1016" + inkscape:window-width="1920" + inkscape:snap-center="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:bbox-nodes="true" + inkscape:bbox-paths="true" + inkscape:snap-bbox="true" + units="px" + showgrid="true" + inkscape:current-layer="layer1" + inkscape:document-units="px" + inkscape:cy="11.01934" + inkscape:cx="19.581751" + inkscape:zoom="16" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + inkscape:snap-midpoints="true"> + <inkscape:grid + id="grid3336" + type="xygrid" + empspacing="4" /> + </sodipodi:namedview> + <defs + id="defs4" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="translate(0,-1036.3622)" + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <rect + style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161" + width="4" + height="4" + x="0" + y="1042.3622" /> + <rect + y="1042.3622" + x="4" + height="4" + width="4" + id="rect4167" + style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="4" + height="4" + x="8" + y="1042.3622" /> + <rect + y="1042.3622" + x="12" + height="4" + width="4" + id="rect4171" + style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4173" + width="4" + height="4" + x="4" + y="1038.3622" /> + <rect + y="1046.3622" + x="4" + height="4" + width="4" + id="rect4175" + style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_curve_2d.svg b/tools/editor/icons/source/icon_curve_2d.svg new file mode 100644 index 0000000000..34719e37de --- /dev/null +++ b/tools/editor/icons/source/icon_curve_2d.svg @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="icon_curve_2d.svg" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png" + inkscape:version="0.91 r13725" + version="1.1" + id="svg2" + viewBox="0 0 16 16" + height="16" + width="16"> + <sodipodi:namedview + inkscape:snap-smooth-nodes="false" + inkscape:object-nodes="false" + inkscape:snap-intersection-paths="false" + inkscape:object-paths="false" + inkscape:window-maximized="1" + inkscape:window-y="27" + inkscape:window-x="0" + inkscape:window-height="1016" + inkscape:window-width="1920" + inkscape:snap-center="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:bbox-nodes="true" + inkscape:bbox-paths="true" + inkscape:snap-bbox="true" + units="px" + showgrid="true" + inkscape:current-layer="layer1" + inkscape:document-units="px" + inkscape:cy="7.8406355" + inkscape:cx="5.0331401" + inkscape:zoom="22.627416" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base"> + <inkscape:grid + id="grid3336" + type="xygrid" + empspacing="4" /> + </sodipodi:namedview> + <defs + id="defs4" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="translate(0,-1036.3622)" + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 14,1037.3613 c -3.166667,0 -5.1044619,0.854 -6.0820312,2.3203 C 6.9403994,1041.148 7,1042.8613 7,1044.3613 c 0,1.5 -0.059601,2.7867 -0.5820312,3.5703 -0.5224307,0.7837 -1.5846355,1.4297 -4.4179688,1.4297 a 1.0001,1.0001 0 1 0 0,2 c 3.1666667,0 5.1044619,-0.8539 6.0820312,-2.3203 C 9.0596006,1047.5747 9,1045.8613 9,1044.3613 c 0,-1.5 0.059601,-2.7866 0.5820312,-3.5703 0.5224308,-0.7836 1.5846358,-1.4297 4.4179688,-1.4297 a 1.0001,1.0001 0 1 0 0,-2 z" + id="path4154" + inkscape:connector-curvature="0" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_curve_3d.svg b/tools/editor/icons/source/icon_curve_3d.svg new file mode 100644 index 0000000000..66034968b2 --- /dev/null +++ b/tools/editor/icons/source/icon_curve_3d.svg @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_curve_3d.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="45.254834" + inkscape:cx="8.9774722" + inkscape:cy="7.1326353" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 8.0039062,1037.3555 a 1.0001,1.0001 0 0 0 -0.4511718,0.1113 l -6,3 a 1.0001,1.0001 0 0 0 0,1.7891 l 6,3 a 1.0001,1.0001 0 0 0 0.8945312,0 L 13,1042.9805 l 0,3.7636 -5,2.5 -5.5527344,-2.7773 a 1.0001331,1.0001331 0 0 0 -0.8945312,1.7891 l 6,3 a 1.0001,1.0001 0 0 0 0.8945312,0 l 6.0000004,-3 A 1.0001,1.0001 0 0 0 15,1047.3613 l 0,-6 a 1.0001,1.0001 0 0 0 -1.447266,-0.8945 L 8,1043.2441 l -3.7636719,-1.8828 4.2109375,-2.1054 a 1.0001,1.0001 0 0 0 -0.4433594,-1.9004 z" + id="path4160" + inkscape:connector-curvature="0" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_dynamic_font_data.svg b/tools/editor/icons/source/icon_dynamic_font_data.svg index 468b472d7e..9f06172fef 100644 --- a/tools/editor/icons/source/icon_dynamic_font_data.svg +++ b/tools/editor/icons/source/icon_dynamic_font_data.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" - inkscape:cx="1.442498" - inkscape:cy="7.5824259" + inkscape:cx="6.4667889" + inkscape:cy="8.2902868" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -69,10 +69,10 @@ id="layer1" transform="translate(0,-1036.3622)"> <path - id="path4246" - d="m 1,1037.3622 0,2 0,1 1,0 a 1,1 0 0 1 1,-1 l 2,0 0,6 a 1,1 0 0 1 -1,1 l 0,1 1,0 2,0 1,0 0,-1 a 1,1 0 0 1 -1,-1 l 0,-6 2,0 a 1,1 0 0 1 1,1 l 1,0 0,-1 0,-2 -4,0 -2,0 -4,0 z" style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - inkscape:connector-curvature="0" /> + d="M 1 1 L 1 3 L 1 4 L 2 4 A 1 1 0 0 1 3 3 L 5 3 L 5 9 A 1 1 0 0 1 4 10 L 4 11 L 5 11 L 7 11 L 8 11 L 8 10 A 1 1 0 0 1 7 9 L 7 3 L 9 3 A 1 1 0 0 1 10 4 L 11 4 L 11 3 L 11 1 L 7 1 L 5 1 L 1 1 z M 1 6 L 1 8 L 3 8 L 3 6 L 1 6 z M 1 9 L 1 11 L 3 11 L 3 9 L 1 9 z M 1 12 L 1 14 L 3 14 L 3 12 L 1 12 z M 4 12 L 4 14 L 6 14 L 6 12 L 4 12 z " + transform="translate(0,1036.3622)" + id="path4246" /> <path style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 4 5 L 4 7 L 4 8 L 5 8 A 1 1 0 0 1 6 7 L 8 7 L 8 13 A 1 1 0 0 1 7 14 L 7 15 L 8 15 L 10 15 L 11 15 L 11 14 A 1 1 0 0 1 10 13 L 10 7 L 12 7 A 1 1 0 0 1 13 8 L 14 8 L 14 7 L 14 5 L 10 5 L 8 5 L 4 5 z " diff --git a/tools/editor/icons/source/icon_environment.svg b/tools/editor/icons/source/icon_environment.svg new file mode 100644 index 0000000000..45add2c7f7 --- /dev/null +++ b/tools/editor/icons/source/icon_environment.svg @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/icon_node_2d.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_environment.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="16" + inkscape:cx="10.741006" + inkscape:cy="10.690232" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e1e1e1;fill-opacity:0.99215686;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 7.0273438 2.0820312 C 6.3462908 2.6213949 5.3431503 3.5860946 4.6757812 5 L 2.8105469 5 A 6 6 0 0 1 7.0273438 2.0820312 z M 8.9785156 2.0859375 A 6 6 0 0 1 13.1875 5 L 11.324219 5 C 10.658501 3.5895934 9.6595492 2.6261235 8.9785156 2.0859375 z M 8 2.6054688 C 8.3858776 2.856627 9.3974911 3.6104334 10.185547 5 L 5.8144531 5 C 6.6025089 3.6104334 7.6141224 2.856627 8 2.6054688 z M 2.3515625 6 L 4.2949219 6 C 4.1145279 6.6059544 4 7.2695302 4 8 C 4 8.7306855 4.1144398 9.3938115 4.2949219 10 L 2.3496094 10 A 6 6 0 0 1 2 8 A 6 6 0 0 1 2.3515625 6 z M 5.3398438 6 L 10.660156 6 C 10.868048 6.5934731 11 7.2583063 11 8 C 11 8.7421382 10.866303 9.4061377 10.658203 10 L 5.3417969 10 C 5.1336971 9.4061377 5 8.7421382 5 8 C 5 7.2583063 5.1319522 6.5934731 5.3398438 6 z M 11.705078 6 L 13.650391 6 A 6 6 0 0 1 14 8 A 6 6 0 0 1 13.648438 10 L 11.705078 10 C 11.88556 9.3938115 12 8.7306855 12 8 C 12 7.2695302 11.885472 6.6059544 11.705078 6 z M 2.8125 11 L 4.6777344 11 C 5.343895 12.410381 6.3427806 13.374042 7.0234375 13.914062 A 6 6 0 0 1 2.8125 11 z M 5.8144531 11 L 10.185547 11 C 9.3971916 12.390235 8.3853773 13.145488 8 13.396484 C 7.6146227 13.145488 6.6028084 12.390235 5.8144531 11 z M 11.322266 11 L 13.189453 11 A 6 6 0 0 1 8.9707031 13.917969 C 9.651376 13.378771 10.654456 12.413873 11.322266 11 z " + transform="translate(0,1036.3622)" + id="path4158" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_error.svg b/tools/editor/icons/source/icon_error.svg index 831bac859a..a0b04a98cb 100644 --- a/tools/editor/icons/source/icon_error.svg +++ b/tools/editor/icons/source/icon_error.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627416" - inkscape:cx="-12.047246" - inkscape:cy="6.3485985" + inkscape:cx="5.542036" + inkscape:cy="14.568715" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -75,6 +75,7 @@ width="8" height="8" x="2.220446e-16" - y="1044.3622" /> + y="1044.3622" + ry="1.0000174" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_fixed_spatial_material.svg b/tools/editor/icons/source/icon_fixed_spatial_material.svg new file mode 100644 index 0000000000..7ae0f93ffc --- /dev/null +++ b/tools/editor/icons/source/icon_fixed_spatial_material.svg @@ -0,0 +1,169 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_fixed_spatial_material.svg"> + <defs + id="defs4"> + <clipPath + id="clipPath4189" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + id="path4191" + d="m 6.3750001,1025.8622 a 1.6876688,1.5001498 0 0 0 -1.6875,1.5 l 0,18 a 1.6876688,1.5001498 0 0 0 1.6875,1.5 l 10.1217039,0 c -0.747392,-0.8796 -1.304338,-1.8888 -1.562256,-3 l -6.8719479,0 0,-15 16.8749999,0 0,3.3486 a 3.4281247,3.0472216 0 0 1 1.282105,1.1279 c 0.537834,0.828 1.294284,1.677 2.092895,2.5723 l 0,-8.5488 a 1.6876688,1.5001498 0 0 0 -1.6875,-1.5 l -20.2499999,0 z m 11.8124999,4.5 0,1.5 -1.6875,0 0,1.5 -3.375,0 0,1.5 -1.6875,0 0,1.5 -1.6874999,0 0,1.5 3.3749999,0 3.375,0 0.02637,0 c 0.246127,-0.317 0.496441,-0.6239 0.738282,-0.9053 1.145331,-1.3327 2.270672,-2.4711 3.015746,-3.6182 a 3.4281247,3.0472216 0 0 1 1.282105,-1.1279 l 0,-0.3486 -1.6875,0 0,-1.5 -1.6875,0 z m 5.0625,4.5 c -1.948558,3 -5.0625,5.0146 -5.0625,7.5 0,2.4853 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0147 5.0625,-4.5 0,-2.4854 -3.113942,-4.5 -5.0625,-7.5 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + </clipPath> + <clipPath + id="clipPath4253" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + id="path4255" + d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4208"> + <path + style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 4.6875001,1042.3622 11.8124999,4.5 11.8125,-4.5 0,-12 -11.8125,-4.5 -11.8124999,4.5 z" + id="path4210" + inkscape:connector-curvature="0" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4199"> + <path + inkscape:connector-curvature="0" + id="path4201" + d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z" + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.627417" + inkscape:cx="11.899872" + inkscape:cy="11.262807" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="false" + inkscape:snap-smooth-nodes="false" + inkscape:snap-midpoints="false"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="g4181" + mask="none" + clip-path="url(#clipPath4199)" + transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)"> + <rect + y="1025.8622" + x="3" + height="3.0000043" + width="27" + id="rect4159" + style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161" + width="27" + height="3.0000041" + x="3" + y="1028.8622" /> + <rect + style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4163" + width="27" + height="2.9999995" + x="3" + y="1031.8622" /> + <rect + y="1034.8622" + x="3" + height="3.0000031" + width="27" + id="rect4165" + style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1037.8622" + x="3" + height="3.0000029" + width="27" + id="rect4167" + style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="27" + height="2.9999976" + x="3" + y="1043.8622" /> + <rect + style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4146" + width="27" + height="3.0000029" + x="3" + y="1040.8622" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_g_i_probe.svg b/tools/editor/icons/source/icon_g_i_probe.svg new file mode 100644 index 0000000000..d803a5f63d --- /dev/null +++ b/tools/editor/icons/source/icon_g_i_probe.svg @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_g_i_probe.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="4.4024065" + inkscape:cy="8.249577" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" + d="m 11,1040.3622 a 3.9999826,3.9999826 0 0 0 -4,4 3.9999826,3.9999826 0 0 0 4,4 3.9999826,3.9999826 0 0 0 4,-4 3.9999826,3.9999826 0 0 0 -4,-4 z m 0,2 a 2.0000174,2.0000174 0 0 1 2,2 2.0000174,2.0000174 0 0 1 -2,2 2.0000174,2.0000174 0 0 1 -2,-2 2.0000174,2.0000174 0 0 1 2,-2 z" + id="path4255" + inkscape:connector-curvature="0" /> + <rect + style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" + id="rect4265" + width="4" + height="2.0000348" + x="9" + y="1046.3622" /> + <rect + style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" + id="rect4269" + width="2" + height="1.0000174" + x="10" + y="1050.3622" /> + <rect + y="1047.3622" + x="9" + height="2.0000348" + width="4" + id="rect4274" + style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" + ry="1.0000174" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 6,1050.3622 -4,0 0,-12 10,0" + id="path4293" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_g_i_probe_data.svg b/tools/editor/icons/source/icon_g_i_probe_data.svg new file mode 100644 index 0000000000..96fa62723c --- /dev/null +++ b/tools/editor/icons/source/icon_g_i_probe_data.svg @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_g_i_probe_data.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="11.914815" + inkscape:cy="6.460794" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" + d="M 11 4 A 3.9999826 3.9999826 0 0 0 7 8 A 3.9999826 3.9999826 0 0 0 9 11.458984 L 9 12 C 9 12.55401 9.4459904 13 10 13 L 12 13 C 12.55401 13 13 12.55401 13 12 L 13 11.458984 A 3.9999826 3.9999826 0 0 0 15 8 A 3.9999826 3.9999826 0 0 0 11 4 z M 11 6 A 2.0000174 2.0000174 0 0 1 13 8 A 2.0000174 2.0000174 0 0 1 11 10 A 2.0000174 2.0000174 0 0 1 9 8 A 2.0000174 2.0000174 0 0 1 11 6 z M 10 14 L 10 15 L 12 15 L 12 14 L 10 14 z " + transform="translate(0,1036.3622)" + id="path4255" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 2,1037.3613 a 1.0001,1.0001 0 0 0 -1,1 l 0,12 a 1.0001,1.0001 0 0 0 1,1 l 4,0 0,-2 -3,0 0,-10 9,0 0,-2 -10,0 z" + id="path4293" + inkscape:connector-curvature="0" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4170" + width="2" + height="2" + x="4" + y="1040.3622" /> + <rect + y="1043.3622" + x="4" + height="2" + width="2" + id="rect4172" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4174" + width="2" + height="2" + x="4" + y="1046.3622" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_image_sky_box.svg b/tools/editor/icons/source/icon_image_sky_box.svg new file mode 100644 index 0000000000..9a89c04e58 --- /dev/null +++ b/tools/editor/icons/source/icon_image_sky_box.svg @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="icon_image_sky_box.svg" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png" + inkscape:version="0.91 r13725" + version="1.1" + id="svg2" + viewBox="0 0 16 16" + height="16" + width="16"> + <sodipodi:namedview + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-intersection-paths="false" + inkscape:object-paths="false" + inkscape:window-maximized="1" + inkscape:window-y="27" + inkscape:window-x="0" + inkscape:window-height="1016" + inkscape:window-width="1920" + inkscape:snap-center="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:bbox-nodes="true" + inkscape:bbox-paths="true" + inkscape:snap-bbox="true" + units="px" + showgrid="true" + inkscape:current-layer="layer1" + inkscape:document-units="px" + inkscape:cy="9.413879" + inkscape:cx="10.701686" + inkscape:zoom="32" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + inkscape:snap-midpoints="true"> + <inkscape:grid + id="grid3336" + type="xygrid" + empspacing="4" /> + </sodipodi:namedview> + <defs + id="defs4"> + <linearGradient + inkscape:collect="always" + id="linearGradient4142"> + <stop + style="stop-color:#84c2ff;stop-opacity:1" + offset="0" + id="stop4144" /> + <stop + style="stop-color:#46a3ff;stop-opacity:1" + offset="1" + id="stop4146" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4142" + id="radialGradient4148" + cx="9.9399967" + cy="1051.0801" + fx="9.9399967" + fy="1051.0801" + r="7" + gradientTransform="matrix(1.3337828e-5,-1.9999995,1.5714282,2.7945105e-6,-1643.697,1071.2392)" + gradientUnits="userSpaceOnUse" /> + </defs> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="translate(0,-1036.3622)" + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <rect + style="opacity:1;fill:url(#radialGradient4148);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4140" + width="14" + height="13.999983" + x="1" + y="1037.3622" + ry="2.0000174" /> + <path + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 6 4 A 1 1 0 0 0 5 5 A 1 1 0 0 0 6 6 A 1 1 0 0 0 7 5 A 1 1 0 0 0 6 4 z M 11 5 A 2 2 0 0 0 9 7 A 1 1 0 0 0 8 8 A 1 1 0 0 0 9 9 L 13 9 A 1 1 0 0 0 14 8 A 1 1 0 0 0 13 7 A 2 2 0 0 0 11 5 z M 3 9 A 1 1 0 0 0 2 10 A 1 1 0 0 0 3 11 L 5 11 A 1 1 0 0 0 4 12 A 1 1 0 0 0 5 13 L 8 13 A 1 1 0 0 0 9 12 A 1 1 0 0 0 8 11 L 6 11 A 1 1 0 0 0 7 10 A 1 1 0 0 0 6 9 L 3 9 z " + transform="translate(0,1036.3622)" + id="path4150" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_interp_wrap_clamp.svg b/tools/editor/icons/source/icon_interp_wrap_clamp.svg new file mode 100644 index 0000000000..068e79ace0 --- /dev/null +++ b/tools/editor/icons/source/icon_interp_wrap_clamp.svg @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="8" + viewBox="0 0 16 8" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_interp_wrap_clamp.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="45.254834" + inkscape:cx="8.8989222" + inkscape:cy="4.5067976" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="true" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1044.3622)"> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4154" + width="2" + height="5.9999828" + x="1" + y="1045.3622" + rx="1.7382812e-05" + ry="1.7382812e-05" /> + <rect + ry="1.7382812e-05" + rx="1.7382812e-05" + y="1045.3622" + x="13" + height="5.9999828" + width="2" + id="rect4156" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + d="m 5,1048.3622 6,0" + id="path4158" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 6,1046.3622 -2,2 2,2" + id="path4160" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4162" + d="m 10,1046.3622 2,2 -2,2" + style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_interp_wrap_loop.svg b/tools/editor/icons/source/icon_interp_wrap_loop.svg new file mode 100644 index 0000000000..bfca46331b --- /dev/null +++ b/tools/editor/icons/source/icon_interp_wrap_loop.svg @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="8" + viewBox="0 0 16 8" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_interp_wrap_loop.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="45.254834" + inkscape:cx="7.8700453" + inkscape:cy="4.2719762" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="true" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1044.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 12 1 L 12 3 A 1.0000174 1.0000174 0 0 1 13 4 A 1.0000174 1.0000174 0 0 1 12 5 L 12 7 A 3 3 0 0 0 15 4 A 3 3 0 0 0 12 1 z " + id="path4159" + transform="translate(0,1044.3622)" /> + <path + cx="12" + cy="1048.3622" + r="3" + id="path4161" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 4 1 A 3 3 0 0 0 1 4 A 3 3 0 0 0 4 7 L 4 5 A 1.0000174 1.0000174 0 0 1 3 4 A 1.0000174 1.0000174 0 0 1 4 3 L 4 1 z " + id="path4176" + transform="translate(0,1044.3622)" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4180" + width="3" + height="2" + x="9" + y="1045.3622" + rx="6.5185495e-06" + ry="1.7382799e-05" /> + <rect + ry="1.7382799e-05" + rx="6.5185495e-06" + y="1049.3622" + x="4" + height="2" + width="3" + id="rect4182" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 7,1048.3622 0,4 3,-2 z" + id="path4186" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4190" + d="m 9,1044.3622 0,4 -3,-2 z" + style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_joystick.svg b/tools/editor/icons/source/icon_joypad.svg index 5395060175..fb84462919 100644 --- a/tools/editor/icons/source/icon_joystick.svg +++ b/tools/editor/icons/source/icon_joypad.svg @@ -18,7 +18,7 @@ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" - sodipodi:docname="icon_joystick.svg"> + sodipodi:docname="icon_joypad.svg"> <defs id="defs4" /> <sodipodi:namedview diff --git a/tools/editor/icons/source/icon_key_next.svg b/tools/editor/icons/source/icon_key_next.svg index 4155255434..942245305c 100644 --- a/tools/editor/icons/source/icon_key_next.svg +++ b/tools/editor/icons/source/icon_key_next.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="32" - inkscape:cx="3.6318496" - inkscape:cy="7.8283625" + inkscape:zoom="45.254834" + inkscape:cx="8.9672408" + inkscape:cy="7.1977527" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -59,7 +59,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -69,23 +69,14 @@ id="layer1" transform="translate(0,-1036.3622)"> <path + style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 11 9 L 11 11 L 9 11 L 9 13 L 11 13 L 11 15 L 13 15 L 13 13 L 15 13 L 15 11 L 13 11 L 13 9 L 11 9 z " + transform="translate(0,1036.3622)" + id="rect4156" /> + <path style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 11 1 A 4 4.0000024 0 0 0 7.1308594 4 L 1 4 L 1 6 L 2 6 L 2 8 L 5 8 L 5 6 L 7.1328125 6 A 4 4.0000024 0 0 0 9 8.4589844 L 9 7 L 11 7 A 2.0000174 2.0000174 0 0 1 9 5 A 2.0000174 2.0000174 0 0 1 11 3 A 2.0000174 2.0000174 0 0 1 13 5 A 2.0000174 2.0000174 0 0 1 11 7 L 14.458984 7 A 4 4.0000024 0 0 0 15 5 A 4 4.0000024 0 0 0 11 1 z " + d="M 11 1 A 4 4.0000024 0 0 0 7.1308594 4 L 1 4 L 1 6 L 2 6 L 2 8 L 5 8 L 5 6 L 7.1328125 6 A 4 4.0000024 0 0 0 10 8.8691406 L 10 8 L 13.638672 8 A 4 4.0000024 0 0 0 15 5 A 4 4.0000024 0 0 0 11 1 z M 11 3 A 2.0000174 2.0000174 0 0 1 13 5 A 2.0000174 2.0000174 0 0 1 11 7 A 2.0000174 2.0000174 0 0 1 9 5 A 2.0000174 2.0000174 0 0 1 11 3 z " transform="translate(0,1036.3622)" - id="path4137" /> - <rect - style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4156" - width="2" - height="5.9999828" - x="11" - y="1045.3622" /> - <rect - y="1047.3622" - x="9" - height="2.0000174" - width="6" - id="rect4158" - style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + id="path4137-6" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_large_texture.svg b/tools/editor/icons/source/icon_large_texture.svg new file mode 100644 index 0000000000..4db0342041 --- /dev/null +++ b/tools/editor/icons/source/icon_large_texture.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png" + inkscape:export-xdpi="45" + inkscape:export-ydpi="45" + sodipodi:docname="icon_large_texture.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="10.856598" + inkscape:cy="8.2673025" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-intersection-paths="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 1 1 L 1 2 L 1 4 L 2 4 L 2 2 L 4 2 L 4 1 L 1 1 z M 12 1 L 12 2 L 14 2 L 14 4 L 15 4 L 15 1 L 12 1 z M 9 6 L 9 7 L 8 7 L 8 8 L 6 8 L 6 9 L 5 9 L 5 10 L 4 10 L 4 11 L 6 11 L 8 11 L 10 11 L 12 11 L 12 9 L 11 9 L 11 8 L 11 7 L 10 7 L 10 6 L 9 6 z M 1 12 L 1 14 L 1 15 L 4 15 L 4 14 L 2 14 L 2 12 L 1 12 z M 14 12 L 14 14 L 12 14 L 12 15 L 15 15 L 15 14 L 15 12 L 14 12 z " + transform="translate(0,1036.3622)" + id="rect4179" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_load.svg b/tools/editor/icons/source/icon_load.svg index f8e78fb4ea..395a5c1b8a 100644 --- a/tools/editor/icons/source/icon_load.svg +++ b/tools/editor/icons/source/icon_load.svg @@ -29,11 +29,11 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="12.685427" - inkscape:cy="1.6294402" + inkscape:cx="6.3187685" + inkscape:cy="7.6629717" inkscape:document-units="px" inkscape:current-layer="layer1" - showgrid="false" + showgrid="true" units="px" inkscape:snap-bbox="true" inkscape:bbox-paths="true" @@ -43,9 +43,9 @@ inkscape:snap-object-midpoints="true" inkscape:snap-center="true" inkscape:window-width="1920" - inkscape:window-height="1119" + inkscape:window-height="1016" inkscape:window-x="0" - inkscape:window-y="26" + inkscape:window-y="27" inkscape:window-maximized="1" inkscape:snap-smooth-nodes="true" inkscape:object-nodes="true" @@ -53,8 +53,8 @@ <inkscape:grid type="xygrid" id="grid3336" - spacingx="0.5" - spacingy="0.5" + spacingx="1" + spacingy="1" empspacing="2" /> </sodipodi:namedview> <metadata @@ -74,12 +74,74 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4153" + width="1" + height="8.9999657" + x="1" + y="1040.3622" /> <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="M 1.5000703,2 C 1.0834036,2 0.7251221,2.1928844 0.4590547,2.4589844 0.1929873,2.7250844 7.03e-5,3.0834 7.03e-5,3.5 l 0.5,8.5 c 0.041565,0.581917 0.1536332,1.110716 0.5214844,1.478516 C 1.3894058,13.846416 1.916737,14 2.5000703,14 l 0.5,0 0.5,0 9.9997657,0 c 0.231666,-10e-5 0.432919,-0.159266 0.486328,-0.384766 l 2,-7.4999996 C 16.060474,5.8013344 15.822456,5.5002 15.499836,5.5 L 4.7559297,5.5 C 4.5236856,5.5003 4.3126587,5.6584963 4.2696015,5.8867188 L 3.0383769,12.412759 C 2.9838992,12.701515 2.7130529,12.963778 2.2988984,12.972656 1.7175274,12.985119 1.5058274,12.46121 1.5000703,12 l -0.5,-8.5 c 0,-0.083 0.057083,-0.2249844 0.1660156,-0.3339844 C 1.2750185,3.0571156 1.416737,3 1.5000703,3 L 12.499836,3 c 0.08333,0 0.225052,0.057016 0.333984,0.1660156 0.108933,0.109 0.224913,0.2750776 0.166016,0.3339844 l 0,1 1,0 0,-1 c 0,-0.4166 -0.192917,-0.7749156 -0.458984,-1.0410156 C 13.274784,2.1928844 12.916503,2 12.499836,2 Z" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 3,1038.3622 c -1.1045695,0 -2,0.8954 -2,2 l 1,0 c 0,-0.5523 0.4477153,-1 1,-1 z" + id="path4155" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 6,6 C 5.643017,6.0002824 5.313257,6.1908435 5.1347656,6.5 5.0426478,6.6588009 4.9960226,6.8398957 5,7.0234375 L 4,13 c -0.091144,0.544728 -0.4477153,1 -1,1 l 0,1 9,0 c 1.10457,0 1.818405,-0.910429 2,-2 L 15,7 C 15.003977,6.8164581 14.957352,6.6588009 14.865234,6.5 14.686743,6.1908437 14.356983,6.0002826 14,6 Z" transform="translate(0,1036.3622)" - id="path8167" + id="rect4159" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccsccsscccc" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4182" + width="2" + height="1" + x="3" + y="1038.3622" /> + <path + sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="sscccscccccccssscccssssccssss" /> + id="path4184" + d="m 5,1038.3622 c 1.10457,0 2,0.8954 2,2 l -1,0 c 0,-0.5523 -0.4477153,-1 -1,-1 z" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" + id="path4188" + d="m 3,1051.3622 c -1.1045695,0 -2,-0.8954 -2,-2 l 1,0 c 0,0.5523 0.4477153,1 1,1 z" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1040.3622" + x="7" + height="1" + width="4" + id="rect4192" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 7,1041.3622 A 1,1 0 0 1 6.2928932,1041.0693 1,1 0 0 1 6,1040.3622 l 1,0 z" + sodipodi:end="3.1415927" + sodipodi:start="1.5707963" + sodipodi:ry="1" + sodipodi:rx="1" + sodipodi:cy="1040.3622" + sodipodi:cx="7" + sodipodi:type="arc" + id="path4208" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path4210" + sodipodi:type="arc" + sodipodi:cx="-11" + sodipodi:cy="-1041.3622" + sodipodi:rx="1" + sodipodi:ry="1" + sodipodi:start="1.5707963" + sodipodi:end="3.1415927" + d="m -11,-1040.3622 a 1,1 0 0 1 -0.707107,-0.2929 A 1,1 0 0 1 -12,-1041.3622 l 1,0 z" + transform="scale(-1,-1)" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_mesh_library.svg b/tools/editor/icons/source/icon_mesh_library.svg new file mode 100644 index 0000000000..b908a4db6e --- /dev/null +++ b/tools/editor/icons/source/icon_mesh_library.svg @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_mesh_library.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.999999" + inkscape:cx="10.839298" + inkscape:cy="6.916789" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 7 14 L 7 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 7 8.4140625 L 7 8 A 2.0002 2.0002 0 0 1 7.8085938 6.3945312 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7304688 L 12 6 A 2.0002 2.0002 0 0 1 12.998047 6.2714844 A 2.0002 2.0002 0 0 1 14 6 L 14 4.7285156 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z M 9 8 L 9 9 L 9 14 L 9 15 L 14 15 C 14.552285 15 15 14.5523 15 14 L 15 9 C 15 8.4477 14.552285 8 14 8 L 14 12 L 13 11 L 12 12 L 12 8 L 9 8 z " + transform="translate(0,1036.3622)" + id="path4162" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_navigation_mesh.svg b/tools/editor/icons/source/icon_navigation_mesh.svg new file mode 100644 index 0000000000..31ab5df8ad --- /dev/null +++ b/tools/editor/icons/source/icon_navigation_mesh.svg @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_navigation_mesh.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.999999" + inkscape:cx="9.4708391" + inkscape:cy="9.3796697" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 7.2382812 14 L 7.9882812 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 8.6972656 10.111328 L 9.46875 8.0546875 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7304688 L 12 5.0019531 A 2.0002 2.0002 0 0 1 12.023438 5.0019531 A 2.0002 2.0002 0 0 1 13.873047 6.2988281 L 14 6.6367188 L 14 4.7285156 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z M 12 7 L 9 15 L 12 13 L 15 15 L 12 7 z " + transform="translate(0,1036.3622)" + id="path4162" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_navigation_polygon.svg b/tools/editor/icons/source/icon_navigation_polygon.svg new file mode 100644 index 0000000000..f3b6fcbcc3 --- /dev/null +++ b/tools/editor/icons/source/icon_navigation_polygon.svg @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_navigation_polygon.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.627416" + inkscape:cx="11.686357" + inkscape:cy="9.3308993" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="layer1-5" + inkscape:label="Layer 1" + style="fill:#e0e0e0;fill-opacity:1"> + <path + id="path4144-6" + transform="translate(0,1036.3622)" + d="M 2,1 A 1.0001,1.0001 0 0 0 1,2 l 0,12 a 1.0001,1.0001 0 0 0 1,1 l 4.9023438,0 A 2.1002099,2.1002099 0 0 1 7.0332031,14.263672 L 7.5078125,13 3,13 3,3 11.585938,3 7.2929688,7.2929688 a 1.0001,1.0001 0 0 0 0,1.4140624 L 8.6191406,10.033203 10.033203,6.2636719 a 2.1002099,2.1002099 0 0 1 1.992188,-1.3613281 2.1002099,2.1002099 0 0 1 0.435547,0.050781 L 14.707031,2.7070312 A 1.0001,1.0001 0 0 0 14,1 L 2,1 Z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4163" + d="m 15,1051.3622 -3,-8 -3,8 3,-2 z" + style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_patch_9_frame.svg b/tools/editor/icons/source/icon_nine_patch_rect.svg index f12789c19e..f12789c19e 100644 --- a/tools/editor/icons/source/icon_patch_9_frame.svg +++ b/tools/editor/icons/source/icon_nine_patch_rect.svg diff --git a/tools/editor/icons/source/icon_packed_data_container.svg b/tools/editor/icons/source/icon_packed_data_container.svg new file mode 100644 index 0000000000..70aed22f2c --- /dev/null +++ b/tools/editor/icons/source/icon_packed_data_container.svg @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_packed_data_container.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.627417" + inkscape:cx="17.645108" + inkscape:cy="9.7856584" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + d="m 2,1038.3622 0,12 12,0 0,-12 z" + id="path4154" + inkscape:connector-curvature="0" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4167" + width="2" + height="2.0000174" + x="4" + y="1040.3622" /> + <rect + y="1043.3622" + x="4" + height="2.0000174" + width="2" + id="rect4183" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4185" + width="2" + height="2.0000174" + x="4" + y="1046.3622" /> + <rect + y="1040.3622" + x="7" + height="2.0000174" + width="2" + id="rect4187" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4189" + width="2" + height="2.0000174" + x="7" + y="1043.3622" /> + <rect + y="1046.3622" + x="7" + height="2.0000174" + width="2" + id="rect4191" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4193" + width="2" + height="2.0000174" + x="10" + y="1040.3622" /> + <rect + y="1043.3622" + x="10" + height="2.0000174" + width="2" + id="rect4195" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_particles_shader.svg b/tools/editor/icons/source/icon_particles_shader.svg new file mode 100644 index 0000000000..b4c2ef7ccd --- /dev/null +++ b/tools/editor/icons/source/icon_particles_shader.svg @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_particles_shader.svg"> + <defs + id="defs4"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4253"> + <path + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z" + id="path4255" + inkscape:connector-curvature="0" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4199"> + <path + inkscape:connector-curvature="0" + id="path4201" + d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z" + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4208"> + <path + style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 8,1037.3622 A 4.4999948,4.9999847 0 0 0 3.5859375,1041.3934 3,3 0 0 0 1,1044.3622 a 3,3 0 0 0 3,3 l 8,0 a 3,3 0 0 0 3,-3 3,3 0 0 0 -2.589844,-2.9668 A 4.4999948,4.9999847 0 0 0 8,1037.3622 Z m -4,11 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z m 8,0 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z m -4,1 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z" + id="path4210" + inkscape:connector-curvature="0" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="15.999999" + inkscape:cx="8.2922739" + inkscape:cy="6.6952763" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="g4271" + clip-path="url(#clipPath4208)" + transform="translate(0,1.8694115e-5)"> + <rect + y="1037.3622" + x="0" + height="2.0000031" + width="16" + id="rect4159" + style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161" + width="16" + height="2.0000029" + x="0" + y="1039.3622" /> + <rect + style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4163" + width="16" + height="1.9999999" + x="0" + y="1041.3622" /> + <rect + y="1043.3622" + x="0" + height="2.0000024" + width="16" + id="rect4165" + style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1045.3622" + x="0" + height="2.0000021" + width="16" + id="rect4167" + style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="16" + height="1.9999987" + x="0" + y="1049.3622" /> + <rect + style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4146" + width="16" + height="2.0000021" + x="0" + y="1047.3622" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_patch_9_rect.svg b/tools/editor/icons/source/icon_patch_9_rect.svg new file mode 100644 index 0000000000..c5a09603a6 --- /dev/null +++ b/tools/editor/icons/source/icon_patch_9_rect.svg @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_patch_9_rect.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="10.35114" + inkscape:cy="9.1140348" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <rect + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4154" + width="1" + height="14" + x="1" + y="1037.3622" /> + <rect + y="1050.3622" + x="1" + height="0.9999826" + width="14" + id="rect4156" + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4158" + width="14" + height="0.9999826" + x="1" + y="1037.3622" /> + <rect + y="1037.3622" + x="14" + height="14" + width="1" + id="rect4160" + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + y="1040.3622" + x="1" + height="0.9999826" + width="14" + id="rect4162" + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4164" + width="14" + height="0.9999826" + x="1" + y="1047.3622" /> + <rect + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4166" + width="14" + height="0.9999826" + x="1037.3622" + y="-5" + transform="matrix(0,1,-1,0,0,0)" /> + <rect + transform="matrix(0,1,-1,0,0,0)" + y="-12" + x="1037.3622" + height="0.9999826" + width="14" + id="rect4168" + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_polygon_path_finder.svg b/tools/editor/icons/source/icon_polygon_path_finder.svg new file mode 100644 index 0000000000..c2f8d80c3d --- /dev/null +++ b/tools/editor/icons/source/icon_polygon_path_finder.svg @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_polygon_path_finder.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.999999" + inkscape:cx="4.2632138" + inkscape:cy="9.710537" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 2 1 C 1.4477381 1.0000552 1.0000552 1.4477381 1 2 L 1 3 L 3 3 L 3 1 L 2 1 z M 5 1 L 5 3 L 7 3 L 7 1 L 5 1 z M 9 1 L 9 3 L 11 3 L 11 1 L 9 1 z M 13 1 L 13 3 L 14.414062 3 L 14.707031 2.7070312 C 15.336587 2.0770367 14.890637 1.0003496 14 1 L 13 1 z M 1 5 L 1 7 L 3 7 L 3 5 L 1 5 z M 12 7 L 9 15 L 12 13 L 15 15 L 12 7 z M 1 9 L 1 11 L 3 11 L 3 9 L 1 9 z M 1 13 L 1 14 C 1.0000552 14.552262 1.4477381 14.999945 2 15 L 3 15 L 3 13 L 1 13 z M 5 13 L 5 15 L 6.9023438 15 C 6.9015603 14.748705 6.9458828 14.499309 7.0332031 14.263672 L 7.5078125 13 L 5 13 z " + transform="translate(0,1036.3622)" + id="path4144" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_reference_frame.svg b/tools/editor/icons/source/icon_reference_rect.svg index 76c3247f1b..cee814360d 100644 --- a/tools/editor/icons/source/icon_reference_frame.svg +++ b/tools/editor/icons/source/icon_reference_rect.svg @@ -18,7 +18,7 @@ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" - sodipodi:docname="icon_reference_frame.svg"> + sodipodi:docname="icon_reference_rect.svg"> <defs id="defs4" /> <sodipodi:namedview diff --git a/tools/editor/icons/source/icon_reflection_probe.svg b/tools/editor/icons/source/icon_reflection_probe.svg new file mode 100644 index 0000000000..64b6493d6d --- /dev/null +++ b/tools/editor/icons/source/icon_reflection_probe.svg @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_reflection_probe.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="8.348015" + inkscape:cy="11.115501" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 7 3.6191406 L 7 12.382812 L 3 10.382812 L 3 5.6191406 L 7 3.6191406 z M 9 3.6191406 L 13 5.6191406 L 13 10.382812 L 9 12.382812 L 9 3.6191406 z " + transform="translate(0,1036.3622)" + id="path4139" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_reparent.svg b/tools/editor/icons/source/icon_reparent.svg index 65f101c8f7..79543fe066 100644 --- a/tools/editor/icons/source/icon_reparent.svg +++ b/tools/editor/icons/source/icon_reparent.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="11.313708" - inkscape:cx="-1.4011549" - inkscape:cy="8.7567876" + inkscape:zoom="22.627416" + inkscape:cx="11.980115" + inkscape:cy="8.5519429" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -46,7 +46,10 @@ inkscape:window-height="1016" inkscape:window-x="0" inkscape:window-y="27" - inkscape:window-maximized="1"> + inkscape:window-maximized="1" + inkscape:snap-midpoints="true" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> <inkscape:grid type="xygrid" id="grid3336" /> @@ -59,7 +62,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -68,45 +71,15 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <circle - r="2" - cy="1049.3622" - cx="3" - id="circle4277" - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <circle - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="circle4279" - cx="3" - cy="1039.3622" - r="2" /> - <circle - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="circle4281" - cx="13" - cy="1049.3622" - r="2" /> <path - style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" - d="m 3,1039.3622 0,10 10,0" - id="path4287" - inkscape:connector-curvature="0" /> - <path - style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 9,1038.3622 0,2 a 3,3 0 0 1 3,3 l 2,0 a 5.0000172,5.0000172 0 0 0 -5,-5 z" - id="path4289" - inkscape:connector-curvature="0" /> - <rect style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4294" - width="2" - height="2" - x="12" - y="1043.3622" /> + d="M 3 2 A 2 2 0 0 0 1 4 A 2 2 0 0 0 2 5.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 11.271484 14 A 2 2 0 0 0 13 15 A 2 2 0 0 0 15 13 A 2 2 0 0 0 13 11 A 2 2 0 0 0 11.269531 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.7285156 A 2 2 0 0 0 5 4 A 2 2 0 0 0 3 2 z " + transform="translate(0,1036.3622)" + id="circle4277" /> <path - style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" - d="m 9,1037.3622 0,4 -3,-2 z" - id="path4296" - inkscape:connector-curvature="0" /> + style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 9 1 L 5 4 L 9 7 L 9 5 A 3 3 0 0 1 12 8 L 12 10 L 14 10 L 14 8 A 5.0000172 5.0000172 0 0 0 9 3 L 9 1 z " + transform="translate(0,1036.3622)" + id="path4289" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_room.svg b/tools/editor/icons/source/icon_room.svg index 8a2ccc30c8..599bbeb770 100644 --- a/tools/editor/icons/source/icon_room.svg +++ b/tools/editor/icons/source/icon_room.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627416" - inkscape:cx="11.210875" - inkscape:cy="4.4642701" + inkscape:cx="11.166681" + inkscape:cy="6.6297847" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -60,7 +60,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -69,27 +69,10 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <g - id="layer1-7" - inkscape:label="Layer 1" - transform="translate(0,1.1802001e-5)" - style="stroke:#fc9c9c;stroke-opacity:0.99607843"> - <path - sodipodi:nodetypes="ccccccc" - inkscape:connector-curvature="0" - id="path4139" - d="m 8,1050.3622 -6,-3 0,-6 6,-3 6,3 0,6 z" - style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> - </g> <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="M 7 2 L 7 7.3828125 L 1.5527344 10.105469 L 2.4472656 11.894531 L 8 9.1191406 L 13.552734 11.894531 L 14.447266 10.105469 L 9 7.3828125 L 9 2 L 7 2 z " + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 9 3.6191406 L 13 5.6191406 L 13 9.3828125 L 9 7.3828125 L 9 3.6191406 z M 8 9.1191406 L 11.763672 11 L 8 12.882812 L 4.2363281 11 L 8 9.1191406 z " transform="translate(0,1036.3622)" - id="path4200" /> - <path - style="fill:#fc9c9c;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.99607843" - d="m 2,1047.3622 0,-6 6,-3 0,6 z" - id="path4209" - inkscape:connector-curvature="0" /> + id="path4139" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_room_bounds.svg b/tools/editor/icons/source/icon_room_bounds.svg new file mode 100644 index 0000000000..8f7e6e6c83 --- /dev/null +++ b/tools/editor/icons/source/icon_room_bounds.svg @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_room_bounds.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.999999" + inkscape:cx="9.5548877" + inkscape:cy="9.0516113" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 1 1 L 1 2 L 1 3 L 2 3 L 2 2 L 3 2 L 3 1 L 2 1 L 1 1 z M 13 1 L 13 2 L 14 2 L 14 3 L 15 3 L 15 2 L 15 1 L 14 1 L 13 1 z M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 9 3.6191406 L 13 5.6191406 L 13 9.3828125 L 9 7.3828125 L 9 3.6191406 z M 8 9.1191406 L 11.763672 11 L 8 12.882812 L 4.2363281 11 L 8 9.1191406 z M 1 13 L 1 14 L 1 15 L 2 15 L 3 15 L 3 14 L 2 14 L 2 13 L 1 13 z M 14 13 L 14 14 L 13 14 L 13 15 L 14 15 L 15 15 L 15 14 L 15 13 L 14 13 z " + transform="translate(0,1036.3622)" + id="path4139" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_sample_library.svg b/tools/editor/icons/source/icon_sample_library.svg new file mode 100644 index 0000000000..78b01430c2 --- /dev/null +++ b/tools/editor/icons/source/icon_sample_library.svg @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png" + inkscape:export-xdpi="45" + inkscape:export-ydpi="45" + sodipodi:docname="icon_sample_library.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="21.70867" + inkscape:cx="6.3137691" + inkscape:cy="6.7376711" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="false" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-midpoints="true" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 9,8 0,1 0,5 0,1 5,0 c 0.552285,0 1,-0.447715 1,-1 L 15,9 C 15,8.4477153 14.552285,8 14,8 l 0,4 -1,-1 -1,1 0,-4 z" + transform="translate(0,1036.3622)" + id="rect4161" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccssscccccc" /> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff8484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 7.0214844,1037.3633 a 1.0001,1.0001 0 0 0 -1,0.875 l -0.5898438,4.7226 -0.5234375,-1.0468 a 1.0001,1.0001 0 0 0 -0.8945312,-0.5528 l -2,0 a 1.0001,1.0001 0 1 0 0,2 l 1.3828125,0 1.7226562,3.4473 a 1.0001,1.0001 0 0 0 1.8867188,-0.3223 l 0.5898437,-4.7226 0.5234375,1.0449 a 1.0001,1.0001 0 0 0 0.8945313,0.5527 l 3.0000001,0 a 1.0001,1.0001 0 1 0 0,-2 l -2.3808595,0 -1.7246094,-3.4472 a 1.0001,1.0001 0 0 0 -0.8867187,-0.5508 z" + id="path4181" + inkscape:connector-curvature="0" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_script_create.svg b/tools/editor/icons/source/icon_script_create.svg new file mode 100644 index 0000000000..0cf16a9c3b --- /dev/null +++ b/tools/editor/icons/source/icon_script_create.svg @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/godotengine/godot/tools/editor/icons/con_script_create.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_script_create.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="21.189633" + inkscape:cx="7.8202901" + inkscape:cy="11.917121" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="false" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 6 1 L 6 2 C 5.4477153 2 5 2.4477153 5 3 L 5 13 L 4 13 L 4 11 L 2 11 L 2 13 C 2.0002826 13.356983 2.1908437 13.686743 2.5 13.865234 C 2.6519425 13.953279 2.8243914 13.999759 3 14 L 3 15 L 8 15 L 9 15 L 9 14 L 8 14 L 8 10 L 10 10 L 10 8 L 12 8 L 12 5 L 15 5 L 15 3 C 15 1.8954305 14.104569 1 13 1 L 6 1 z " + transform="translate(0,1036.3622)" + id="rect4255" /> + <path + style="opacity:1;fill:#b4b4b4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 6 1 C 4.8954305 1 4 1.8954305 4 3 L 4 10 L 2 10 L 1 10 L 1 11 L 1 13 C 1 14.104569 1.8954305 15 3 15 C 4.1045695 15 5 14.104569 5 13 L 5 3 C 5 2.4477153 5.4477153 2 6 2 C 6.5522847 2 7 2.4477153 7 3 L 7 4 L 7 5 L 7 6 L 8 6 L 12 6 L 12 5 L 8 5 L 8 4 L 8 3 C 8 1.8954305 7.1045695 1 6 1 z M 2 11 L 4 11 L 4 13 C 4 13.552285 3.5522847 14 3 14 C 2.4477153 14 2 13.552285 2 13 L 2 11 z " + id="path4265" + transform="translate(0,1036.3622)" /> + <circle + cy="1048.3622" + cx="3" + id="ellipse4234" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + ry="1.0000174" + rx="1" /> + <path + style="fill:#84ffb1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 13,1049.3622 2,0 0,-2 -2,0 0,-2 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 z" + id="path8069" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccc" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_script_remove.svg b/tools/editor/icons/source/icon_script_remove.svg new file mode 100644 index 0000000000..1a0a0eebe3 --- /dev/null +++ b/tools/editor/icons/source/icon_script_remove.svg @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/godotengine/godot/tools/editor/icons/con_script_create.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_script_remove.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="42.379266" + inkscape:cx="6.774667" + inkscape:cy="6.9870579" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="false" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" + empspacing="4" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 6 1 L 6 2 C 5.4477153 2 5 2.4477153 5 3 L 5 13 L 4 13 L 4 11 L 2 11 L 2 13 C 2.0002826 13.356983 2.1908437 13.686743 2.5 13.865234 C 2.6519425 13.953279 2.8243914 13.999759 3 14 L 3 15 L 8.6347656 15 L 7.0507812 13.416016 L 8.4648438 12.001953 L 7.0507812 10.585938 L 10.585938 7.0507812 L 12 8.4648438 L 12 8 L 12 5 L 15 5 L 15 3 C 15 1.8954305 14.104569 1 13 1 L 6 1 z " + transform="translate(0,1036.3622)" + id="rect4255" /> + <path + style="opacity:1;fill:#b4b4b4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 6 1 C 4.8954305 1 4 1.8954305 4 3 L 4 10 L 2 10 L 1 10 L 1 11 L 1 13 C 1 14.104569 1.8954305 15 3 15 C 4.1045695 15 5 14.104569 5 13 L 5 3 C 5 2.4477153 5.4477153 2 6 2 C 6.5522847 2 7 2.4477153 7 3 L 7 4 L 7 5 L 7 6 L 8 6 L 12 6 L 12 5 L 8 5 L 8 4 L 8 3 C 8 1.8954305 7.1045695 1 6 1 z M 2 11 L 4 11 L 4 13 C 4 13.552285 3.5522847 14 3 14 C 2.4477153 14 2 13.552285 2 13 L 2 11 z " + id="path4265" + transform="translate(0,1036.3622)" /> + <circle + cy="1048.3622" + cx="3" + id="ellipse4234" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + ry="1.0000174" + rx="1" /> + <path + style="fill:#ff8484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 13.414214,1048.3622 1.414213,-1.4142 -1.414213,-1.4142 L 12,1046.948 l -1.414214,-1.4142 -1.4142131,1.4142 1.4142131,1.4142 -1.4142131,1.4142 1.4142131,1.4142 1.414214,-1.4142 1.414214,1.4142 1.414213,-1.4142 z" + id="path8069" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccc" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_shader.svg b/tools/editor/icons/source/icon_shader.svg index 4c7b5aafc1..1a2393fec2 100644 --- a/tools/editor/icons/source/icon_shader.svg +++ b/tools/editor/icons/source/icon_shader.svg @@ -7,7 +7,6 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16" @@ -22,30 +21,6 @@ sodipodi:docname="icon_shader.svg"> <defs id="defs4"> - <linearGradient - inkscape:collect="always" - id="linearGradient4174"> - <stop - style="stop-color:#ff5353;stop-opacity:1" - offset="0" - id="stop4176" /> - <stop - id="stop4186" - offset="0.29999271" - style="stop-color:#f1e17a;stop-opacity:1" /> - <stop - id="stop4184" - offset="0.55557561" - style="stop-color:#6bfcef;stop-opacity:1" /> - <stop - style="stop-color:#9765fd;stop-opacity:1" - offset="0.8889094" - id="stop4188" /> - <stop - style="stop-color:#ff6092;stop-opacity:1" - offset="1" - id="stop4178" /> - </linearGradient> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4253"> @@ -55,25 +30,15 @@ id="path4255" inkscape:connector-curvature="0" /> </clipPath> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4174" - id="radialGradient4161" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2857125,1.428583,-1.4285914,1.2857189,1540.5411,-308.80327)" - cx="7.5384259" - cy="1041.7489" - fx="7.5384259" - fy="1041.7489" - r="7" /> <clipPath clipPathUnits="userSpaceOnUse" - id="clipPath4199"> + id="clipPath4207"> <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 6.3749999,1025.8622 c -0.931942,10e-5 -1.6874069,0.6715 -1.6875,1.5 l 0,18 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 20.2500001,0 c 0.931942,-2e-4 1.687407,-0.6716 1.6875,-1.5 l 0,-12 -8.4375,-7.5 z m 1.6875,3 10.1250001,0 0,4.5 c 0,0.831 0.752609,1.5 1.6875,1.5 l 5.0625,0 0,9 -16.8750001,0 z" + id="path4209" inkscape:connector-curvature="0" - id="path4201" - d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + sodipodi:nodetypes="ccccccccccccccccc" /> </clipPath> </defs> <sodipodi:namedview @@ -83,9 +48,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="45.254832" - inkscape:cx="1.7751371" - inkscape:cy="8.8192435" + inkscape:zoom="31.999999" + inkscape:cx="20.042938" + inkscape:cy="7.6712905" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -131,7 +96,7 @@ <g id="g4181" mask="none" - clip-path="url(#clipPath4199)" + clip-path="url(#clipPath4207)" transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)"> <rect y="1025.8622" @@ -183,93 +148,5 @@ x="3" y="1040.8622" /> </g> - <path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 29.5,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z" - id="path4151" /> - <path - style="fill:#ffff91;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 22.5,1046.3622 7,3 7,-3 -7,-3 z" - id="path4223" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4221" - d="m 22.5,1043.3622 7,3 7,-3 -7,-3 z" - style="fill:#ff91ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 29.5,1045.3622 -7,-3 0,-2 7,3 z" - id="path4143" - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccc" /> - <path - inkscape:connector-curvature="0" - id="path4145" - d="m 29.5,1045.3622 7,-3 0,-2 -7,3 z" - style="fill:#00d8d8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - sodipodi:nodetypes="ccccc" /> - <path - style="fill:#91ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 22.5,1040.3622 7,3 7,-3 -7,-3 z" - id="path4149" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccccc" - style="fill:#d800d8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 29.5,1048.3622 7,-3 0,-2 -7,3 z" - id="path4208" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4215" - d="m 29.5,1048.3622 -7,-3 0,-2 7,3 z" - style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - sodipodi:nodetypes="ccccc" /> - <path - inkscape:connector-curvature="0" - id="path4217" - d="m 29.5,1051.3622 7,-3 0,-2 -7,3 z" - style="fill:#d8d800;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - sodipodi:nodetypes="ccccc" /> - <path - sodipodi:nodetypes="ccccc" - style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 29.5,1051.3622 -7,-3 0,-2 7,3 z" - id="path4219" - inkscape:connector-curvature="0" /> - <g - inkscape:label="Layer 1" - id="layer1-5" - transform="translate(18,1)"> - <path - id="path4151-1" - d="m 29.5,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4149-2" - d="m 22.5,1040.3622 7,3 7,-3 -7,-3 z" - style="fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - inkscape:connector-curvature="0" - id="path4143-0" - d="m 29.5,1051.3622 -7,-3 0,-8 7,3 z" - style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 29.5,1051.3622 7,-3 0,-8 -7,3 z" - id="path4145-0" - inkscape:connector-curvature="0" /> - </g> - <path - style="opacity:1;fill:url(#radialGradient4161);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 64,1037.3622 a 7,7.0000001 0 0 0 -7,7 7,7.0000001 0 0 0 7,7 7,7.0000001 0 0 0 7,-7 7,7.0000001 0 0 0 -7,-7 z m -2,2 a 2,2 0 0 1 2,2 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 z" - id="path4159" - inkscape:connector-curvature="0" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_short_cut.svg b/tools/editor/icons/source/icon_short_cut.svg new file mode 100644 index 0000000000..05069e8ea1 --- /dev/null +++ b/tools/editor/icons/source/icon_short_cut.svg @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_short_cut.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="45.254835" + inkscape:cx="7.0902833" + inkscape:cy="8.378548" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="false" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 4 2 C 3.4477153 2 3 2.4477 3 3 L 3 12.083984 C 3.0004015 12.589984 3.4479991 13 4 13 L 12 13 C 12.552001 13 12.999599 12.589984 13 12.083984 L 13 3 C 13 2.4477 12.552285 2 12 2 L 4 2 z M 1 4 L 1 13 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 4 L 14 4 L 14 13 A 0.9999826 0.9999826 0 0 1 13 14 L 3 14 A 1 1 0 0 1 2 13 L 2 4 L 1 4 z M 7 4 L 10 4 L 9 7 L 11 7 L 7 11 L 8 8 L 6 8 L 7 4 z " + transform="translate(0,1036.3622)" + id="rect4155" /> + <rect + style="opacity:1;fill:#ffffff;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4194" + width="7" + height="14" + x="27" + y="1038.3622" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_spatial_shader.svg b/tools/editor/icons/source/icon_spatial_shader.svg new file mode 100644 index 0000000000..329354b716 --- /dev/null +++ b/tools/editor/icons/source/icon_spatial_shader.svg @@ -0,0 +1,165 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_spatial_shader.svg"> + <defs + id="defs4"> + <clipPath + id="clipPath4253" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + id="path4255" + d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </clipPath> + <clipPath + id="clipPath4199" + clipPathUnits="userSpaceOnUse"> + <path + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z" + id="path4201" + inkscape:connector-curvature="0" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4280"> + <g + id="g4282" + inkscape:label="Layer 1" + transform="translate(0,1.1802001e-5)" + style="stroke:#fc9c9c;stroke-opacity:0.99607843"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 7.9628906,1.0019531 A 1.0001,1.0001 0 0 0 7.5527344,1.1054688 l -6,3 A 1.0001,1.0001 0 0 0 1,5 l 0,6 a 1.0001,1.0001 0 0 0 0.5527344,0.894531 l 6,3 a 1.0001,1.0001 0 0 0 0.8945312,0 l 6.0000004,-3 A 1.0001,1.0001 0 0 0 15,11 L 15,5 A 1.0001,1.0001 0 0 0 14.447266,4.1054688 l -6.0000004,-3 A 1.0001,1.0001 0 0 0 7.9628906,1.0019531 Z M 8,3.1191406 11.763672,5 8,6.8828125 4.2363281,5 8,3.1191406 Z m -5,3.5 4,2 0,3.7636714 -4,-2 0,-3.7636714 z m 10,0 0,3.7636714 -4,2 0,-3.7636714 4,-2 z" + transform="translate(0,1036.3622)" + id="path4284" + inkscape:connector-curvature="0" /> + </g> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.627417" + inkscape:cx="7.8442401" + inkscape:cy="13.929239" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="false" + inkscape:snap-smooth-nodes="false" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="g4271" + clip-path="url(#clipPath4280)"> + <rect + y="1037.3622" + x="0" + height="2.0000031" + width="16" + id="rect4159" + style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161" + width="16" + height="2.0000029" + x="0" + y="1039.3622" /> + <rect + style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4163" + width="16" + height="1.9999999" + x="0" + y="1041.3622" /> + <rect + y="1043.3622" + x="0" + height="2.0000024" + width="16" + id="rect4165" + style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1045.3622" + x="0" + height="2.0000021" + width="16" + id="rect4167" + style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="16" + height="1.9999987" + x="0" + y="1049.3622" /> + <rect + style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4146" + width="16" + height="2.0000021" + x="0" + y="1047.3622" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_spot_light.svg b/tools/editor/icons/source/icon_spot_light.svg index b9130eff37..04f5b42f4d 100644 --- a/tools/editor/icons/source/icon_spot_light.svg +++ b/tools/editor/icons/source/icon_spot_light.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="31.999999" - inkscape:cx="5.5818635" - inkscape:cy="8.6161108" + inkscape:cx="-0.26188668" + inkscape:cy="8.5536108" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -60,7 +60,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -71,48 +71,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - d="m 14,1046.3622 -12,0 c 0,-2.7614 2.6862915,-5 6,-5 3.313708,0 6,2.2386 6,5 z" - id="path4155" - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccsc" /> - <path - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - d="M 6 1 A 1 1 0 0 0 5 2 L 5 7 L 11 7 L 11 2 A 1 1 0 0 0 10 1 L 6 1 z " + d="M 6 1 A 1 1 0 0 0 5 2 L 5 5.6933594 C 3.2138662 6.5594405 2 8.153847 2 10 L 6 10 A 2 2 0 0 0 8 12 A 2 2 0 0 0 10 10 L 14 10 C 14 8.153847 12.786134 6.5594405 11 5.6933594 L 11 2 A 1 1 0 0 0 10 1 L 6 1 z M 4.9023438 10.634766 L 3.1699219 11.634766 L 4.1699219 13.365234 L 5.9023438 12.365234 L 4.9023438 10.634766 z M 11.097656 10.634766 L 10.097656 12.365234 L 11.830078 13.365234 L 12.830078 11.634766 L 11.097656 10.634766 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z " transform="translate(0,1036.3622)" - id="rect4158" /> - <circle - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="path4160" - cx="8" - cy="1046.3622" - r="2" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4162" - width="2" - height="2" - x="7" - y="1049.3622" - inkscape:transform-center-y="3.9999826" /> - <rect - inkscape:transform-center-y="2.0000217" - y="533.10931" - x="-903.17627" - height="2" - width="2" - id="rect4164" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - transform="matrix(0.5,-0.8660254,0.8660254,0.5,0,0)" - inkscape:transform-center-x="-3.4640975" /> - <rect - inkscape:transform-center-x="3.4641473" - transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4166" - width="2" - height="2" - x="909.17621" - y="519.25293" - inkscape:transform-center-y="1.9999799" /> + id="path4155" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_sprite_frames.svg b/tools/editor/icons/source/icon_sprite_frames.svg new file mode 100644 index 0000000000..dc445da773 --- /dev/null +++ b/tools/editor/icons/source/icon_sprite_frames.svg @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png" + inkscape:export-xdpi="45" + inkscape:export-ydpi="45" + sodipodi:docname="icon_sprite_frames.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="45.254835" + inkscape:cx="10.147205" + inkscape:cy="8.653875" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="false" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <rect + y="1046.3622" + x="10" + height="2.0000086" + width="2" + id="rect4230" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4232" + width="2" + height="2.0000086" + x="13" + y="1046.3622" /> + <rect + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4234" + width="2" + height="2.0000086" + x="10" + y="1049.3622" /> + <rect + y="1049.3622" + x="13" + height="2.0000086" + width="2" + id="rect4236" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 6 1 A 5 5 0 0 0 1 6 A 5 5 0 0 0 6 11 A 5 5 0 0 0 11 6 A 5 5 0 0 0 6 1 z M 3 5 A 1 1 0 0 1 4 6 A 1 1 0 0 1 3 7 A 1 1 0 0 1 2 6 A 1 1 0 0 1 3 5 z M 9 5 A 1 1 0 0 1 10 6 A 1 1 0 0 1 9 7 A 1 1 0 0 1 8 6 A 1 1 0 0 1 9 5 z M 7.9960938 7.4921875 A 0.50005 0.50005 0 0 1 8.3535156 8.3535156 C 7.7356645 8.9714156 6.8611111 9.25 6 9.25 C 5.1388889 9.25 4.2643355 8.9714156 3.6464844 8.3535156 A 0.50005 0.50005 0 0 1 3.9941406 7.4960938 A 0.50005 0.50005 0 0 1 4.3535156 7.6464844 C 4.7356645 8.0286844 5.3611111 8.25 6 8.25 C 6.6388889 8.25 7.2643355 8.0286844 7.6464844 7.6464844 A 0.50005 0.50005 0 0 1 7.9960938 7.4921875 z " + transform="translate(0,1036.3622)" + id="path4238" /> + <rect + y="1043.3622" + x="13" + height="2.0000086" + width="2" + id="rect4246" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1049.3622" + x="7" + height="2.0000086" + width="2" + id="rect4248" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_static_body.svg b/tools/editor/icons/source/icon_static_body.svg index af1ebc8900..fcaa2b7d3e 100644 --- a/tools/editor/icons/source/icon_static_body.svg +++ b/tools/editor/icons/source/icon_static_body.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="22.627417" - inkscape:cx="7.2543819" - inkscape:cy="7.4903504" + inkscape:zoom="11.313709" + inkscape:cx="10.872202" + inkscape:cy="6.7990901" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -72,67 +72,9 @@ id="layer1" transform="translate(0,-1036.3622)"> <path - style="fill:#a5b7f5;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 25 3 C 22 3 21 6 21 6 C 20.879708 6.3608765 20.803605 6.6663233 20.707031 7 L 21 7 A 1 1 0 0 0 22 8 A 1 1 0 0 0 23 7 L 24 7 A 1 1 0 0 0 25 8 A 1 1 0 0 0 26 7 L 27 7 A 1 1 0 0 0 28 8 A 1 1 0 0 0 29 7 L 29.292969 7 C 29.196395 6.6663233 29.120292 6.3608765 29 6 C 29 6 28 3 25 3 z M 20.369141 8.1542969 C 19.864457 10.037394 19.478832 11.521168 18 13 L 32 13 C 30.521168 11.521168 30.135543 10.037394 29.630859 8.1542969 A 2 2 0 0 1 29 8.7324219 A 2 2 0 0 1 27 8.7324219 A 2 2 0 0 1 26.5 8.3203125 A 2 2 0 0 1 26 8.7324219 A 2 2 0 0 1 24 8.7324219 A 2 2 0 0 1 23.5 8.3203125 A 2 2 0 0 1 23 8.7324219 A 2 2 0 0 1 21 8.7324219 A 2 2 0 0 1 20.369141 8.1542969 z " - transform="translate(0,1036.3622)" - id="path4161" /> - <rect - style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4175" - width="1" - height="1" - x="20" - y="1042.3622" /> - <rect - y="1042.3622" - x="29" - height="1" - width="1" - id="rect4177" - style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <path style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z " + d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z M 3 3 L 3 5 L 5 5 L 5 3 L 3 3 z M 11 3 L 11 5 L 13 5 L 13 3 L 11 3 z M 3 11 L 3 13 L 5 13 L 5 11 L 3 11 z M 11 11 L 11 13 L 13 13 L 13 11 L 11 11 z " transform="translate(0,1036.3622)" id="rect4179" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4195" - width="2" - height="2" - x="3" - y="1039.3622" /> - <rect - y="1047.3622" - x="3" - height="2" - width="2" - id="rect4197" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <rect - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4199" - width="2" - height="2" - x="11" - y="1047.3622" /> - <rect - y="1039.3622" - x="11" - height="2" - width="2" - id="rect4201" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <g - id="layer1-1" - inkscape:label="Layer 1" - transform="translate(-23.644738,-1.9878833)"> - <path - id="path4139" - transform="translate(0,1036.3622)" - d="M 8,1 A 7,7 0 0 0 1,8 7,7 0 0 0 8,15 7,7 0 0 0 15,8 7,7 0 0 0 8,1 Z M 4,6 A 1,1 0 0 1 5,7 1,1 0 0 1 4,8 1,1 0 0 1 3,7 1,1 0 0 1 4,6 Z m 8,0 a 1,1 0 0 1 1,1 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 z m -7,3 6,0 a 3,3 0 0 1 -1.5,2.597656 3,3 0 0 1 -3,0 A 3,3 0 0 1 5,9 Z" - style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - inkscape:connector-curvature="0" /> - </g> </g> </svg> diff --git a/tools/editor/icons/source/icon_static_body_2d.svg b/tools/editor/icons/source/icon_static_body_2d.svg index d47e924e37..0ed3ef7cf0 100644 --- a/tools/editor/icons/source/icon_static_body_2d.svg +++ b/tools/editor/icons/source/icon_static_body_2d.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="7.2543819" - inkscape:cy="7.4903504" + inkscape:cx="-1.0099286" + inkscape:cy="7.4019621" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -62,7 +62,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -72,13 +72,6 @@ id="layer1" transform="translate(0,-1036.3622)"> <rect - style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4175" - width="1" - height="1" - x="20" - y="1042.3622" /> - <rect y="1042.3622" x="29" height="1" @@ -87,36 +80,8 @@ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> <path style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z " + d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z M 3 3 L 3 5 L 5 5 L 5 3 L 3 3 z M 11 3 L 11 5 L 13 5 L 13 3 L 11 3 z M 3 11 L 3 13 L 5 13 L 5 11 L 3 11 z M 11 11 L 11 13 L 13 13 L 13 11 L 11 11 z " transform="translate(0,1036.3622)" id="rect4179" /> - <rect - style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4195" - width="2" - height="2" - x="3" - y="1039.3622" /> - <rect - y="1047.3622" - x="3" - height="2" - width="2" - id="rect4197" - style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <rect - style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4199" - width="2" - height="2" - x="11" - y="1047.3622" /> - <rect - y="1039.3622" - x="11" - height="2" - width="2" - id="rect4201" - style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_style_box_empty.svg b/tools/editor/icons/source/icon_style_box_empty.svg new file mode 100644 index 0000000000..c881fe1c10 --- /dev/null +++ b/tools/editor/icons/source/icon_style_box_empty.svg @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_style_box_empty.svg"> + <defs + id="defs4"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4313"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 6.3750001,1025.8622 c -0.931942,2e-4 -1.6874069,0.6716 -1.6875,1.5 l 0,1.5 3.375,0 0,-3 -1.6875,0 z m 5.0624999,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-1.5 c -9.3e-5,-0.8284 -0.755558,-1.4998 -1.6875,-1.5 l -1.6875,0 z m -20.2499999,6 0,3 3.375,0 0,-3 -3.375,0 z m 20.2499999,0 0,0.3486 c 0.532973,0.2675 0.975667,0.657 1.282105,1.128 0.537834,0.828 1.294284,1.6769 2.092895,2.5722 l 0,-4.0488 -3.375,0 z m -1.6875,3 c -1.948558,3 -5.0625,5.0147 -5.0625,7.5 0,2.4854 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0146 5.0625,-4.5 0,-2.4853 -3.113942,-4.5 -5.0625,-7.5 z m -18.5624999,3 0,3 3.375,0 0,-3 -3.375,0 z m 0,6 0,1.5 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 1.6875,0 0,-3 -3.375,0 z m 6.7499999,0 0,3 3.375,0 0,-3 -3.375,0 z" + id="path4315" + inkscape:connector-curvature="0" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="10.442024" + inkscape:cy="8.6470776" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="g4181" + mask="none" + clip-path="url(#clipPath4313)" + transform="matrix(0.59259259,0,0,0.66666674,-1.7777778,353.45399)"> + <rect + y="1025.8622" + x="3" + height="3.0000043" + width="27" + id="rect4159" + style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161" + width="27" + height="3.0000041" + x="3" + y="1028.8622" /> + <rect + style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4163" + width="27" + height="2.9999995" + x="3" + y="1031.8622" /> + <rect + y="1034.8622" + x="3" + height="3.0000031" + width="27" + id="rect4165" + style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1037.8622" + x="3" + height="3.0000029" + width="27" + id="rect4167" + style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="27" + height="2.9999976" + x="3" + y="1043.8622" /> + <rect + style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4146" + width="27" + height="3.0000029" + x="3" + y="1040.8622" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_style_box_flat.svg b/tools/editor/icons/source/icon_style_box_flat.svg new file mode 100644 index 0000000000..9071014ff3 --- /dev/null +++ b/tools/editor/icons/source/icon_style_box_flat.svg @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_style_box_flat.svg"> + <defs + id="defs4"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4313"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 6.3750001,1025.8622 c -0.931942,2e-4 -1.6874069,0.6716 -1.6875,1.5 l 0,1.5 3.375,0 0,-3 -1.6875,0 z m 5.0624999,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-1.5 c -9.3e-5,-0.8284 -0.755558,-1.4998 -1.6875,-1.5 l -1.6875,0 z m -20.2499999,6 0,3 3.375,0 0,-3 -3.375,0 z m 20.2499999,0 0,0.3486 c 0.532973,0.2675 0.975667,0.657 1.282105,1.128 0.537834,0.828 1.294284,1.6769 2.092895,2.5722 l 0,-4.0488 -3.375,0 z m -1.6875,3 c -1.948558,3 -5.0625,5.0147 -5.0625,7.5 0,2.4854 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0146 5.0625,-4.5 0,-2.4853 -3.113942,-4.5 -5.0625,-7.5 z m -18.5624999,3 0,3 3.375,0 0,-3 -3.375,0 z m 0,6 0,1.5 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 1.6875,0 0,-3 -3.375,0 z m 6.7499999,0 0,3 3.375,0 0,-3 -3.375,0 z" + id="path4315" + inkscape:connector-curvature="0" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4391"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 6.3750001,1025.8622 c -0.931942,2e-4 -1.6874069,0.6716 -1.6875,1.5 l 0,18 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 10.1876219,0 c -1.081633,-1.2612 -1.750122,-2.8111 -1.750122,-4.5 0,-2.3563 1.351562,-4.0453 2.494995,-5.376 1.143433,-1.3305 2.270438,-2.4714 3.019043,-3.624 0.571813,-0.8788 1.604865,-1.4416 2.745483,-1.4941 1.267652,-0.06 2.465974,0.5173 3.101441,1.4941 0.549842,0.8466 1.32435,1.7113 2.139038,2.625 l 0,-8.625 c -9.3e-5,-0.8284 -0.755558,-1.4998 -1.6875,-1.5 l -20.2499999,0 z m 16.8749999,9 c -1.948558,3 -5.0625,5.0147 -5.0625,7.5 0,2.4854 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0146 5.0625,-4.5 0,-2.4853 -3.113942,-4.5 -5.0625,-7.5 z" + id="path4393" + inkscape:connector-curvature="0" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="11.34212" + inkscape:cy="7.7545325" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="g4181" + mask="none" + clip-path="url(#clipPath4391)" + transform="matrix(0.59259259,0,0,0.66666674,-1.7777778,353.45399)"> + <rect + y="1025.8622" + x="3" + height="3.0000043" + width="27" + id="rect4159" + style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161" + width="27" + height="3.0000041" + x="3" + y="1028.8622" /> + <rect + style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4163" + width="27" + height="2.9999995" + x="3" + y="1031.8622" /> + <rect + y="1034.8622" + x="3" + height="3.0000031" + width="27" + id="rect4165" + style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1037.8622" + x="3" + height="3.0000029" + width="27" + id="rect4167" + style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="27" + height="2.9999976" + x="3" + y="1043.8622" /> + <rect + style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4146" + width="27" + height="3.0000029" + x="3" + y="1040.8622" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_style_box_texture.svg b/tools/editor/icons/source/icon_style_box_texture.svg new file mode 100644 index 0000000000..30b1f1af68 --- /dev/null +++ b/tools/editor/icons/source/icon_style_box_texture.svg @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_style_box_texture.svg"> + <defs + id="defs4"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4189"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 6.3750001,1025.8622 a 1.6876688,1.5001498 0 0 0 -1.6875,1.5 l 0,18 a 1.6876688,1.5001498 0 0 0 1.6875,1.5 l 10.1217039,0 c -0.747392,-0.8796 -1.304338,-1.8888 -1.562256,-3 l -6.8719479,0 0,-15 16.8749999,0 0,3.3486 a 3.4281247,3.0472216 0 0 1 1.282105,1.1279 c 0.537834,0.828 1.294284,1.677 2.092895,2.5723 l 0,-8.5488 a 1.6876688,1.5001498 0 0 0 -1.6875,-1.5 l -20.2499999,0 z m 11.8124999,4.5 0,1.5 -1.6875,0 0,1.5 -3.375,0 0,1.5 -1.6875,0 0,1.5 -1.6874999,0 0,1.5 3.3749999,0 3.375,0 0.02637,0 c 0.246127,-0.317 0.496441,-0.6239 0.738282,-0.9053 1.145331,-1.3327 2.270672,-2.4711 3.015746,-3.6182 a 3.4281247,3.0472216 0 0 1 1.282105,-1.1279 l 0,-0.3486 -1.6875,0 0,-1.5 -1.6875,0 z m 5.0625,4.5 c -1.948558,3 -5.0625,5.0146 -5.0625,7.5 0,2.4853 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0147 5.0625,-4.5 0,-2.4854 -3.113942,-4.5 -5.0625,-7.5 z" + id="path4191" + inkscape:connector-curvature="0" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.627417" + inkscape:cx="9.8110364" + inkscape:cy="10.993538" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="g4181" + mask="none" + clip-path="url(#clipPath4189)" + transform="matrix(0.59259259,0,0,0.66666674,-1.7777778,353.454)"> + <rect + y="1025.8622" + x="3" + height="3.0000043" + width="27" + id="rect4159" + style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161" + width="27" + height="3.0000041" + x="3" + y="1028.8622" /> + <rect + style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4163" + width="27" + height="2.9999995" + x="3" + y="1031.8622" /> + <rect + y="1034.8622" + x="3" + height="3.0000031" + width="27" + id="rect4165" + style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1037.8622" + x="3" + height="3.0000029" + width="27" + id="rect4167" + style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="27" + height="2.9999976" + x="3" + y="1043.8622" /> + <rect + style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4146" + width="27" + height="3.0000029" + x="3" + y="1040.8622" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_tab_container.svg b/tools/editor/icons/source/icon_tab_container.svg index b53747bf1c..6c197a86f6 100644 --- a/tools/editor/icons/source/icon_tab_container.svg +++ b/tools/editor/icons/source/icon_tab_container.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="32" - inkscape:cx="4.8125618" - inkscape:cy="8.9338072" + inkscape:zoom="45.254834" + inkscape:cx="3.8596634" + inkscape:cy="10.446251" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -62,7 +62,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -73,24 +73,8 @@ transform="translate(0,-1036.3622)"> <path style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z" + d="M 3 1 C 1.8954305 1 1 1.8954305 1 3 L 1 13 C 1 14.104569 1.8954305 15 3 15 L 13 15 C 14.104569 15 15 14.104569 15 13 L 15 3 C 15 1.8954305 14.104569 1 13 1 L 3 1 z M 3 3 L 8 3 L 8 5 L 8 7 L 13 7 L 13 13 L 3 13 L 3 3 z M 10 3 L 13 3 L 13 5 L 10 5 L 10 3 z " transform="translate(0,1036.3622)" - id="rect4140" - inkscape:connector-curvature="0" - sodipodi:nodetypes="sssssssssccccc" /> - <rect - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4158" - width="10" - height="2" - x="3" - y="1041.3622" /> - <rect - y="1039.3622" - x="8" - height="2" - width="5" - id="rect4170" - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> + id="rect4140" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_tabs.svg b/tools/editor/icons/source/icon_tabs.svg index 1b389fc30c..79ed1e5910 100644 --- a/tools/editor/icons/source/icon_tabs.svg +++ b/tools/editor/icons/source/icon_tabs.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="32" - inkscape:cx="3.2506704" - inkscape:cy="11.363584" + inkscape:zoom="22.627417" + inkscape:cx="11.687421" + inkscape:cy="9.3335226" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -75,21 +75,21 @@ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="rect4156" width="1" - height="4.9999828" + height="9.0000172" x="1" - y="1042.3622" /> + y="1040.3622" /> <rect y="-8" - x="1041.3622" + x="1039.3622" height="6" width="1" id="rect4159" style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" transform="matrix(0,1,-1,0,0,0)" /> <rect - y="1042.3622" - x="8" - height="4.9999828" + y="1040.3622" + x="7" + height="3.0000174" width="1" id="rect4161" style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -98,38 +98,26 @@ id="path4163" sodipodi:type="arc" sodipodi:cx="2" - sodipodi:cy="1042.3622" + sodipodi:cy="1040.3622" sodipodi:rx="1" sodipodi:ry="1" sodipodi:start="1.5707963" sodipodi:end="0" - d="m 2,1043.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 3,1042.3622 l -1,0 z" /> - <path - d="m -8,1043.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 -7,1042.3622 l -1,0 z" - sodipodi:end="0" - sodipodi:start="1.5707963" - sodipodi:ry="1" - sodipodi:rx="1" - sodipodi:cy="1042.3622" - sodipodi:cx="-8" - sodipodi:type="arc" - id="path4165" - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - transform="scale(-1,1)" /> + d="m 2,1041.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 3,1040.3622 l -1,0 z" /> <rect style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="rect4167" width="1" - height="4.9999828" + height="9.0000172" x="14" - y="1042.3622" /> + y="1040.3622" /> <rect transform="matrix(0,1,-1,0,0,0)" style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="rect4169" width="1" height="6" - x="1041.3622" + x="1039.3622" y="-14" /> <path transform="scale(-1,1)" @@ -137,19 +125,19 @@ id="path4171" sodipodi:type="arc" sodipodi:cx="-14" - sodipodi:cy="1042.3622" + sodipodi:cy="1040.3622" sodipodi:rx="1" sodipodi:ry="1" sodipodi:start="1.5707963" sodipodi:end="0" - d="m -14,1043.3622 a 1,1 0 0 1 -0.92388,-0.6173 1,1 0 0 1 0.216773,-1.0898 1,1 0 0 1 1.08979,-0.2168 1,1 0 0 1 0.617317,0.9239 l -1,0 z" /> + d="m -14,1041.3622 a 1,1 0 0 1 -0.92388,-0.6173 1,1 0 0 1 0.216773,-1.0898 1,1 0 0 1 1.08979,-0.2168 1,1 0 0 1 0.617317,0.9239 l -1,0 z" /> <rect transform="matrix(0,1,-1,0,0,0)" style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="rect4173" width="1" height="13" - x="1046.3622" + x="1042.3622" y="-15" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_test_cube.svg b/tools/editor/icons/source/icon_test_cube.svg index 8b5db2dc5d..c42c0bb674 100644 --- a/tools/editor/icons/source/icon_test_cube.svg +++ b/tools/editor/icons/source/icon_test_cube.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="45.254834" - inkscape:cx="7.2538994" - inkscape:cy="5.8068101" + inkscape:cx="7.5411615" + inkscape:cy="7.1105382" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -64,7 +64,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -79,16 +79,10 @@ transform="translate(0,1.1802001e-5)" style="stroke:#fc9c9c;stroke-opacity:0.99607843"> <path - sodipodi:nodetypes="ccccccc" - inkscape:connector-curvature="0" - id="path4139" - d="m 8,1050.3622 -6,-3 0,-6 6,-3 6,3 0,6 z" - style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" /> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 8 3.1191406 L 11.763672 5 L 8 6.8828125 L 4.2363281 5 L 8 3.1191406 z M 3 6.6191406 L 7 8.6191406 L 7 12.382812 L 3 10.382812 L 3 6.6191406 z M 13 6.6191406 L 13 10.382812 L 9 12.382812 L 9 8.6191406 L 13 6.6191406 z " + transform="translate(0,1036.3622)" + id="path4139" /> </g> - <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="M 2.4472656 4.1054688 L 1.5527344 5.8945312 L 7 8.6191406 L 7 14 L 9 14 L 9 8.6191406 L 14.447266 5.8945312 L 13.552734 4.1054688 L 8 6.8828125 L 2.4472656 4.1054688 z " - transform="translate(0,1036.3622)" - id="path4155" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_text_edit.svg b/tools/editor/icons/source/icon_text_edit.svg index 1daf1ac75a..4d08e9e3b2 100644 --- a/tools/editor/icons/source/icon_text_edit.svg +++ b/tools/editor/icons/source/icon_text_edit.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" - inkscape:cx="13.881612" - inkscape:cy="11.594783" + inkscape:cx="5.6173015" + inkscape:cy="11.506395" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -72,31 +72,16 @@ id="layer1" transform="translate(0,-1036.3622)"> <rect - style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4175" - width="1" - height="1" - x="20" - y="1042.3622" /> - <rect y="1042.3622" x="29" height="1" width="1" id="rect4177" style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> - <rect - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4173" - width="1" - height="4" - x="4" - y="1040.3622" /> <path - style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 3,1037.3622 c -1.1045695,0 -2,0.8954 -2,2 l 0,10 c 0,1.1046 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.8954 2,-2 l 0,-10 c 0,-1.1046 -0.895431,-2 -2,-2 z m 0,2 10,0 0,10 -10,0 z" - id="rect4140" - inkscape:connector-curvature="0" - sodipodi:nodetypes="sssssssssccccc" /> + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 3 1 C 1.8954305 1 1 1.8954 1 3 L 1 13 C 1 14.1046 1.8954305 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 3 3 L 13 3 L 13 13 L 3 13 L 3 3 z M 4 4 L 4 8 L 5 8 L 5 4 L 4 4 z " + transform="translate(0,1036.3622)" + id="rect4173" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_texture_frame.svg b/tools/editor/icons/source/icon_texture_rect.svg index afab41de41..88d9b4081f 100644 --- a/tools/editor/icons/source/icon_texture_frame.svg +++ b/tools/editor/icons/source/icon_texture_rect.svg @@ -18,7 +18,7 @@ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" - sodipodi:docname="icon_texture_frame.svg"> + sodipodi:docname="icon_texture_rect.svg"> <defs id="defs4" /> <sodipodi:namedview diff --git a/tools/editor/icons/source/icon_theme.svg b/tools/editor/icons/source/icon_theme.svg new file mode 100644 index 0000000000..2cacb9755a --- /dev/null +++ b/tools/editor/icons/source/icon_theme.svg @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_theme.svg"> + <defs + id="defs4"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4370"> + <g + id="g4372" + inkscape:label="Layer 1" + transform="matrix(1.6875,0,0,1.4999998,2.9999999,-530.18094)"> + <path + id="path4374" + transform="translate(0,1036.3622)" + d="M 7,1 6.4355469,3.2578125 A 5.0000172,5.0000172 0 0 0 5.7460938,3.5371094 L 3.7578125,2.34375 2.34375,3.7578125 3.5390625,5.7519531 A 5.0000172,5.0000172 0 0 0 3.2539062,6.4375 L 1,7 1,9 3.2578125,9.5644531 A 5.0000172,5.0000172 0 0 0 3.5371094,10.251953 L 2.34375,12.242188 3.7578125,13.65625 5.7519531,12.460938 A 5.0000172,5.0000172 0 0 0 6.4375,12.746094 L 7,15 9,15 9.5644531,12.742188 a 5.0000172,5.0000172 0 0 0 0.6874999,-0.279297 l 1.990235,1.193359 1.414062,-1.414062 -1.195312,-1.994141 A 5.0000172,5.0000172 0 0 0 12.746094,9.5625 L 15,9 15,7 12.742188,6.4355469 a 5.0000172,5.0000172 0 0 0 -0.279297,-0.6875 L 13.65625,3.7578125 12.242188,2.34375 10.248047,3.5390625 A 5.0000172,5.0000172 0 0 0 9.5625,3.2539062 L 9,1 7,1 Z M 8,6 A 2.0000174,2.0000174 0 0 1 10,8 2.0000174,2.0000174 0 0 1 8,10 2.0000174,2.0000174 0 0 1 6,8 2.0000174,2.0000174 0 0 1 8,6 Z" + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </g> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="16" + inkscape:cx="10.857726" + inkscape:cy="9.3127855" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <g + id="g4181" + mask="none" + clip-path="url(#clipPath4370)" + transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)"> + <rect + y="1025.8622" + x="3" + height="3.0000043" + width="27" + id="rect4159" + style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4161-3" + width="27" + height="3.0000041" + x="3" + y="1028.8622" /> + <rect + style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4163-6" + width="27" + height="2.9999995" + x="3" + y="1031.8622" /> + <rect + y="1034.8622" + x="3" + height="3.0000031" + width="27" + id="rect4165-1" + style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="1037.8622" + x="3" + height="3.0000029" + width="27" + id="rect4167" + style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4169" + width="27" + height="2.9999976" + x="3" + y="1043.8622" /> + <rect + style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4146" + width="27" + height="3.0000029" + x="3" + y="1040.8622" /> + </g> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_tile_set.svg b/tools/editor/icons/source/icon_tile_set.svg new file mode 100644 index 0000000000..e697f03888 --- /dev/null +++ b/tools/editor/icons/source/icon_tile_set.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png" + inkscape:export-xdpi="45" + inkscape:export-ydpi="45" + sodipodi:docname="icon_tile_set.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="30.700696" + inkscape:cx="7.5612844" + inkscape:cy="6.4018109" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="false" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-midpoints="true" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1 1 L 1 3 L 3 3 L 3 1 L 1 1 z M 4 1 L 4 3 L 6 3 L 6 1 L 4 1 z M 7 1 L 7 3 L 9 3 L 9 1 L 7 1 z M 10 1 L 10 3 L 12 3 L 12 1 L 10 1 z M 13 1 L 13 3 L 15 3 L 15 1 L 13 1 z M 1 4 L 1 6 L 3 6 L 3 4 L 1 4 z M 4 4 L 4 6 L 6 6 L 6 4 L 4 4 z M 7 4 L 7 6 L 9 6 L 9 4 L 7 4 z M 10 4 L 10 6 L 12 6 L 12 4 L 10 4 z M 13 4 L 13 6 L 15 6 L 15 4 L 13 4 z M 1 7 L 1 9 L 3 9 L 3 7 L 1 7 z M 4 7 L 4 9 L 6 9 L 6 7 L 4 7 z M 9 8 L 9 9 L 9 14 L 9 15 L 14 15 C 14.552285 15 15 14.552285 15 14 L 15 9 C 15 8.4477153 14.552285 8 14 8 L 14 12 L 13 11 L 12 12 L 12 8 L 9 8 z M 1 10 L 1 12 L 3 12 L 3 10 L 1 10 z M 4 10 L 4 12 L 6 12 L 6 10 L 4 10 z M 1 13 L 1 15 L 3 15 L 3 13 L 1 13 z M 4 13 L 4 15 L 6 15 L 6 13 L 4 13 z " + transform="translate(0,1036.3622)" + id="rect4161" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_track_add_key.svg b/tools/editor/icons/source/icon_track_add_key.svg index 96761526a8..f550f922bb 100644 --- a/tools/editor/icons/source/icon_track_add_key.svg +++ b/tools/editor/icons/source/icon_track_add_key.svg @@ -29,8 +29,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="45.254834" - inkscape:cx="6.0361164" - inkscape:cy="4.9218153" + inkscape:cx="10.389243" + inkscape:cy="3.816961" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -69,7 +69,7 @@ id="layer1" transform="translate(0,-1044.3622)"> <path - style="fill:#a9e100;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z " transform="translate(0,1044.3622)" id="rect4137" /> diff --git a/tools/editor/icons/source/icon_track_add_key_hl.svg b/tools/editor/icons/source/icon_track_add_key_hl.svg index 79e566dde6..1b45cf8c4a 100644 --- a/tools/editor/icons/source/icon_track_add_key_hl.svg +++ b/tools/editor/icons/source/icon_track_add_key_hl.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="45.254834" - inkscape:cx="5.3806528" - inkscape:cy="6.0126016" + inkscape:zoom="32" + inkscape:cx="-4.0417082" + inkscape:cy="5.5439904" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -69,9 +69,14 @@ id="layer1" transform="translate(0,-1044.3622)"> <path - style="fill:#e3fe03;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z " + id="rect4137" + transform="translate(0,1044.3622)" /> + <path transform="translate(0,1044.3622)" - id="rect4137" /> + id="path4143" + d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z " + style="fill:#ffffff;fill-opacity:0.42424244;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_viewport.svg b/tools/editor/icons/source/icon_viewport.svg index fcbe094fca..631260ab33 100644 --- a/tools/editor/icons/source/icon_viewport.svg +++ b/tools/editor/icons/source/icon_viewport.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="45.254834" - inkscape:cx="7.693363" - inkscape:cy="8.1399132" + inkscape:zoom="11.313709" + inkscape:cx="14.11111" + inkscape:cy="8.6614747" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -62,7 +62,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -71,20 +71,6 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1036.3622)"> - <rect - style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" - id="rect4175" - width="1" - height="1" - x="20" - y="1042.3622" /> - <rect - y="1042.3622" - x="29" - height="1" - width="1" - id="rect4177" - style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" /> <path style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" d="M 3,2 C 2.4695977,2.0000801 1.9609485,2.2108464 1.5859375,2.5859375 1.2108464,2.9609485 1.0000801,3.4695977 1,4 l 0,8 c 8.03e-5,0.530402 0.2108465,1.039051 0.5859375,1.414062 C 1.9609484,13.789153 2.4695976,13.99992 3,14 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,4 C 15,2.8954305 14.104569,2 13,2 Z m 0,1 10,0 c 0.552281,9.6e-6 0.99999,0.4477192 1,1 l 0,8 c -10e-6,0.552281 -0.447719,0.99999 -1,1 L 3,13 C 2.4477192,12.99999 2.0000096,12.552281 2,12 L 2,4 c 9.6e-6,-0.5522808 0.4477192,-0.9999904 1,-1 z" diff --git a/tools/editor/icons/source/icon_viewport_container.svg b/tools/editor/icons/source/icon_viewport_container.svg new file mode 100644 index 0000000000..300b8390c4 --- /dev/null +++ b/tools/editor/icons/source/icon_viewport_container.svg @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_viewport_container.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="13.216634" + inkscape:cy="7.7987238" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z M 3,3 13,3 13,13 3,13 Z M 6,4 C 5.469598,4.0001 4.9609495,4.2108375 4.5859375,4.5859375 4.2108465,4.9609375 4.00008,5.4696 4,6 l 0,4 c 8e-5,0.5304 0.2108475,1.039063 0.5859375,1.414062 C 4.9609485,11.789162 5.469598,11.9999 6,12 l 4,0 c 1.104569,0 2,-0.8954 2,-2 L 12,6 C 12,4.8954 11.104569,4 10,4 Z m 0,1 4,0 c 0.552281,0 0.99999,0.4477 1,1 l 0,4 c -10e-6,0.5523 -0.447719,1 -1,1 L 6,11 C 5.447719,11 5.00001,10.5523 5,10 L 5,6 C 5.00001,5.4477 5.447719,5 6,5 Z" + transform="translate(0,1036.3622)" + id="rect4140" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccsssscssccssccs" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_viewport_texture.svg b/tools/editor/icons/source/icon_viewport_texture.svg new file mode 100644 index 0000000000..4cf6532059 --- /dev/null +++ b/tools/editor/icons/source/icon_viewport_texture.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png" + inkscape:export-xdpi="45" + inkscape:export-ydpi="45" + sodipodi:docname="icon_viewport_texture.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.627417" + inkscape:cx="18.523635" + inkscape:cy="6.064799" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:snap-smooth-nodes="true" + inkscape:object-nodes="true" + inkscape:snap-intersection-paths="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" + d="M 3 2 C 2.4695977 2.0000801 1.9609485 2.2108464 1.5859375 2.5859375 C 1.2108464 2.9609485 1.0000801 3.4695977 1 4 L 1 12 C 1.0000803 12.530402 1.2108465 13.039051 1.5859375 13.414062 C 1.9609484 13.789154 2.4695976 13.99992 3 14 L 13 14 C 14.104569 14 15 13.104569 15 12 L 15 4 C 15 2.8954305 14.104569 2 13 2 L 3 2 z M 3 3 L 13 3 C 13.552281 3.0000096 13.99999 3.4477192 14 4 L 14 12 C 13.99999 12.552281 13.552281 12.99999 13 13 L 3 13 C 2.4477192 12.99999 2.0000096 12.552281 2 12 L 2 4 C 2.0000096 3.4477192 2.4477192 3.0000096 3 3 z M 9 6 L 9 7 L 8 7 L 8 8 L 6 8 L 6 9 L 5 9 L 5 10 L 4 10 L 4 11 L 6 11 L 8 11 L 10 11 L 12 11 L 12 9 L 11 9 L 11 8 L 11 7 L 10 7 L 10 6 L 9 6 z " + transform="translate(0,1036.3622)" + id="rect4179" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_warning.svg b/tools/editor/icons/source/icon_warning.svg index ee89f3ec99..4d39141a58 100644 --- a/tools/editor/icons/source/icon_warning.svg +++ b/tools/editor/icons/source/icon_warning.svg @@ -28,9 +28,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="22.627416" - inkscape:cx="1.5203658" - inkscape:cy="5.6414917" + inkscape:zoom="45.254832" + inkscape:cx="2.2320862" + inkscape:cy="6.41947" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -60,7 +60,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -70,11 +70,12 @@ id="layer1" transform="translate(0,-1044.3622)"> <rect - style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4154" + style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4142" width="8" height="8" - x="2.220446e-16" - y="1044.3622" /> + x="0" + y="1044.3622" + ry="1" /> </g> </svg> diff --git a/tools/editor/icons/source/icon_world.svg b/tools/editor/icons/source/icon_world.svg new file mode 100644 index 0000000000..b2be396217 --- /dev/null +++ b/tools/editor/icons/source/icon_world.svg @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_world.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="45.254834" + inkscape:cx="10.207753" + inkscape:cy="6.6325397" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <circle + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path4219" + cx="5.9999828" + cy="1046.3622" + r="4.9999828" /> + <circle + style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path4221" + cx="12" + cy="1039.3622" + r="1" /> + </g> +</svg> diff --git a/tools/editor/icons/source/icon_world_2d.svg b/tools/editor/icons/source/icon_world_2d.svg new file mode 100644 index 0000000000..cb4427808a --- /dev/null +++ b/tools/editor/icons/source/icon_world_2d.svg @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + viewBox="0 0 16 16" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + sodipodi:docname="icon_world_2d.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.627417" + inkscape:cx="17.648364" + inkscape:cy="4.8796811" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:object-nodes="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 2,1037.3613 a 1.0001,1.0001 0 0 0 -1,1 l 0,10 a 1.0001,1.0001 0 0 0 1,1 c 2.3666667,0 3.9746094,0.4629 5.7246094,0.9629 1.75,0.5 3.6420576,1.0371 6.2753906,1.0371 a 1.0001,1.0001 0 0 0 1,-1 l 0,-10 a 1.0001,1.0001 0 0 0 -1,-1 c -2.366667,0 -3.974609,-0.4609 -5.7246094,-0.9609 -1.75,-0.5 -3.6420573,-1.0391 -6.2753906,-1.0391 z m 1,2.0957 c 1.798426,0.1158 3.2574477,0.448 4.7246094,0.8672 1.4977347,0.4279 3.1940466,0.8188 5.2753906,0.9414 l 0,8.002 c -1.79849,-0.1158 -3.2574125,-0.448 -4.7246094,-0.8672 C 6.7776425,1047.9725 5.0813715,1047.5796 3,1047.457 l 0,-8 z" + id="path4157" + inkscape:connector-curvature="0" /> + </g> +</svg> diff --git a/tools/editor/inspector_dock.cpp b/tools/editor/inspector_dock.cpp index 7b06761e53..253f9bcc01 100644 --- a/tools/editor/inspector_dock.cpp +++ b/tools/editor/inspector_dock.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/inspector_dock.h b/tools/editor/inspector_dock.h index 40c153e2d4..be6ed5fa87 100644 --- a/tools/editor/inspector_dock.h +++ b/tools/editor/inspector_dock.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -38,7 +38,7 @@ #if 0 class InspectorDock : public VBoxContainer { - OBJ_TYPE(InspectorDock,VBoxContainer); + GDCLASS(InspectorDock,VBoxContainer); PropertyEditor *property_editor; diff --git a/tools/editor/io_plugins/SCsub b/tools/editor/io_plugins/SCsub index 6299fd416c..4bf55189cc 100644 --- a/tools/editor/io_plugins/SCsub +++ b/tools/editor/io_plugins/SCsub @@ -2,4 +2,4 @@ Import('env') Export('env') -env.add_source_files(env.tool_sources,"*.cpp") +env.add_source_files(env.tool_sources, "*.cpp") diff --git a/tools/editor/io_plugins/editor_atlas.cpp b/tools/editor/io_plugins/editor_atlas.cpp index f69e383fb0..c5f1ee73cf 100644 --- a/tools/editor/io_plugins/editor_atlas.cpp +++ b/tools/editor/io_plugins/editor_atlas.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_atlas.h" + #include "print_string.h" struct _EditorAtlasWorkRect { diff --git a/tools/editor/io_plugins/editor_atlas.h b/tools/editor/io_plugins/editor_atlas.h index 0135e76622..e0cf76576e 100644 --- a/tools/editor/io_plugins/editor_atlas.h +++ b/tools/editor/io_plugins/editor_atlas.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp index 757d2ed5d4..222a9d9517 100644 --- a/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp +++ b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp @@ -1,4 +1,33 @@ +/*************************************************************************/ +/* editor_bitmask_import_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "editor_bitmask_import_plugin.h" + #include "io/image_loader.h" #include "tools/editor/editor_file_dialog.h" #include "tools/editor/editor_dir_dialog.h" @@ -11,7 +40,7 @@ class _EditorBitMaskImportOptions : public Object { - OBJ_TYPE(_EditorBitMaskImportOptions, Object); + GDCLASS(_EditorBitMaskImportOptions, Object); public: bool _set(const StringName& p_name, const Variant& p_value) { @@ -42,7 +71,7 @@ public: class EditorBitMaskImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorBitMaskImportDialog, ConfirmationDialog); + GDCLASS(EditorBitMaskImportDialog, ConfirmationDialog); EditorBitMaskImportPlugin *plugin; @@ -145,7 +174,7 @@ public: error_dialog->popup_centered(Size2(200, 100)*EDSCALE); } - dst = dst.plus_file(bitmasks[i].get_file().basename() + ".pbm"); + dst = dst.plus_file(bitmasks[i].get_file().get_basename() + ".pbm"); plugin->import(dst, imd); } @@ -162,12 +191,12 @@ public: static void _bind_methods() { - ObjectTypeDB::bind_method("_choose_files", &EditorBitMaskImportDialog::_choose_files); - ObjectTypeDB::bind_method("_choose_save_dir", &EditorBitMaskImportDialog::_choose_save_dir); - ObjectTypeDB::bind_method("_import", &EditorBitMaskImportDialog::_import); - ObjectTypeDB::bind_method("_browse", &EditorBitMaskImportDialog::_browse); - ObjectTypeDB::bind_method("_browse_target", &EditorBitMaskImportDialog::_browse_target); - // ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); + ClassDB::bind_method("_choose_files", &EditorBitMaskImportDialog::_choose_files); + ClassDB::bind_method("_choose_save_dir", &EditorBitMaskImportDialog::_choose_save_dir); + ClassDB::bind_method("_import", &EditorBitMaskImportDialog::_import); + ClassDB::bind_method("_browse", &EditorBitMaskImportDialog::_browse); + ClassDB::bind_method("_browse_target", &EditorBitMaskImportDialog::_browse_target); + //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); } EditorBitMaskImportDialog(EditorBitMaskImportPlugin *p_plugin) { @@ -179,7 +208,7 @@ public: VBoxContainer *vbc = memnew(VBoxContainer); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); HBoxContainer *hbc = memnew(HBoxContainer); @@ -225,7 +254,7 @@ public: save_select = memnew(EditorDirDialog); add_child(save_select); - // save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); + //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); save_select->connect("dir_selected", this, "_choose_save_dir"); get_ok()->connect("pressed", this, "_import"); @@ -235,7 +264,7 @@ public: error_dialog = memnew(ConfirmationDialog); add_child(error_dialog); error_dialog->get_ok()->set_text(TTR("Accept")); - // error_dialog->get_cancel()->hide(); + //error_dialog->get_cancel()->hide(); set_hide_on_ok(false); } @@ -294,7 +323,7 @@ void EditorBitMaskImportPlugin::import_from_drop(const Vector<String>& p_drop, c ImageLoader::get_recognized_extensions(&valid_extensions); for(int i=0;i<p_drop.size();i++) { - String extension=p_drop[i].extension().to_lower(); + String extension=p_drop[i].get_extension().to_lower(); for (List<String>::Element *E=valid_extensions.front();E;E=E->next()) { diff --git a/tools/editor/io_plugins/editor_bitmask_import_plugin.h b/tools/editor/io_plugins/editor_bitmask_import_plugin.h index d9ca33cd97..3a6aababe2 100644 --- a/tools/editor/io_plugins/editor_bitmask_import_plugin.h +++ b/tools/editor/io_plugins/editor_bitmask_import_plugin.h @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* editor_bitmask_import_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef EDITOR_BITMASK_IMPORT_PLUGIN_H #define EDITOR_BITMASK_IMPORT_PLUGIN_H @@ -9,7 +37,7 @@ class EditorBitMaskImportDialog; class EditorBitMaskImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorBitMaskImportPlugin, EditorImportPlugin); + GDCLASS(EditorBitMaskImportPlugin, EditorImportPlugin); EditorBitMaskImportDialog *dialog; public: @@ -30,7 +58,7 @@ public: class EditorBitMaskExportPlugin : public EditorExportPlugin { - OBJ_TYPE(EditorBitMaskExportPlugin, EditorExportPlugin); + GDCLASS(EditorBitMaskExportPlugin, EditorExportPlugin); public: diff --git a/tools/editor/io_plugins/editor_export_scene.cpp b/tools/editor/io_plugins/editor_export_scene.cpp index acbbf8c737..7d19258411 100644 --- a/tools/editor/io_plugins/editor_export_scene.cpp +++ b/tools/editor/io_plugins/editor_export_scene.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_export_scene.h" + #include "io/resource_loader.h" #include "io/resource_saver.h" #include "os/dir_access.h" @@ -42,7 +43,7 @@ Vector<uint8_t> EditorSceneExportPlugin::custom_export(String& p_path,const Ref< } - String extension = p_path.extension(); + String extension = p_path.get_extension(); //step 1 check if scene @@ -61,7 +62,7 @@ Vector<uint8_t> EditorSceneExportPlugin::custom_export(String& p_path,const Ref< uint64_t sd=0; String smd5; - String gp = Globals::get_singleton()->globalize_path(p_path); + String gp = GlobalConfig::get_singleton()->globalize_path(p_path); String md5=gp.md5_text(); String tmp_path = EditorSettings::get_singleton()->get_settings_path().plus_file("tmp/"); diff --git a/tools/editor/io_plugins/editor_export_scene.h b/tools/editor/io_plugins/editor_export_scene.h index 2c7fe9a1ab..13493220cb 100644 --- a/tools/editor/io_plugins/editor_export_scene.h +++ b/tools/editor/io_plugins/editor_export_scene.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -33,7 +33,7 @@ class EditorSceneExportPlugin : public EditorExportPlugin { - OBJ_TYPE( EditorSceneExportPlugin, EditorExportPlugin ); + GDCLASS( EditorSceneExportPlugin, EditorExportPlugin ); public: virtual Vector<uint8_t> custom_export(String& p_path,const Ref<EditorExportPlatform> &p_platform); diff --git a/tools/editor/io_plugins/editor_font_import_plugin.cpp b/tools/editor/io_plugins/editor_font_import_plugin.cpp index df3741f0d4..0deb5cbbfa 100644 --- a/tools/editor/io_plugins/editor_font_import_plugin.cpp +++ b/tools/editor/io_plugins/editor_font_import_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_font_import_plugin.h" + #include "scene/gui/dialogs.h" #include "tools/editor/editor_file_dialog.h" #include "tools/editor/editor_node.h" @@ -34,17 +35,16 @@ #include "editor_atlas.h" #include "io/image_loader.h" #include "io/resource_saver.h" -#ifdef FREETYPE_ENABLED +#ifdef FREETYPE_ENABLED #include <ft2build.h> #include FT_FREETYPE_H - #endif class _EditorFontImportOptions : public Object { - OBJ_TYPE(_EditorFontImportOptions,Object); + GDCLASS(_EditorFontImportOptions,Object); public: enum FontMode { @@ -384,7 +384,7 @@ public: class EditorFontImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorFontImportDialog, ConfirmationDialog); + GDCLASS(EditorFontImportDialog, ConfirmationDialog); EditorLineEditFileChooser *source; @@ -418,7 +418,7 @@ class EditorFontImportDialog : public ConfirmationDialog { //print_line("pre src path "+source->get_line_edit()->get_text()); //print_line("src path "+src_path); imd->add_source(src_path); - imd->set_option("font/size",font_size->get_val()); + imd->set_option("font/size",font_size->get_value()); return imd; @@ -439,7 +439,7 @@ class EditorFontImportDialog : public ConfirmationDialog { test_label->set_text(""); test_label->set_text(test_string->get_text()); - test_label->add_color_override("font_color",test_color->get_color()); + test_label->add_color_override("font_color",test_color->get_pick_color()); } void _update() { @@ -468,7 +468,7 @@ class EditorFontImportDialog : public ConfirmationDialog { Ref<ImageTexture> tex = font->get_texture(0); if (tex.is_null()) return; - FileAccessRef f=FileAccess::open(p_font.basename()+".inc",FileAccess::WRITE); + FileAccessRef f=FileAccess::open(p_font.get_basename()+".inc",FileAccess::WRITE); Vector<CharType> ck = font->get_char_keys(); f->store_line("static const int _builtin_font_height="+itos(font->get_height())+";"); @@ -499,7 +499,7 @@ class EditorFontImportDialog : public ConfirmationDialog { f->store_line("static const int _builtin_font_img_width="+itos(img.get_width())+";"); f->store_line("static const int _builtin_font_img_height="+itos(img.get_height())+";"); - String fname = p_font.basename()+".sv.png"; + String fname = p_font.get_basename()+".sv.png"; ResourceSaver::save(fname,tex); Vector<uint8_t> data=FileAccess::get_file_as_array(fname); @@ -533,14 +533,14 @@ class EditorFontImportDialog : public ConfirmationDialog { } if (dest->get_line_edit()->get_text().get_file()==".fnt") { - dest->get_line_edit()->set_text(dest->get_line_edit()->get_text().get_base_dir() + "/" + source->get_line_edit()->get_text().get_file().basename() + ".fnt" ); + dest->get_line_edit()->set_text(dest->get_line_edit()->get_text().get_base_dir() + "/" + source->get_line_edit()->get_text().get_file().get_basename() + ".fnt" ); } - if (dest->get_line_edit()->get_text().extension() == dest->get_line_edit()->get_text()) { + if (dest->get_line_edit()->get_text().get_extension() == dest->get_line_edit()->get_text()) { dest->get_line_edit()->set_text(dest->get_line_edit()->get_text() + ".fnt"); } - if (dest->get_line_edit()->get_text().extension().to_lower() != "fnt") { + if (dest->get_line_edit()->get_text().get_extension().to_lower() != "fnt") { error_dialog->set_text(TTR("Invalid file extension.\nPlease use .fnt.")); error_dialog->popup_centered(Size2(200,100)); return; @@ -572,14 +572,14 @@ class EditorFontImportDialog : public ConfirmationDialog { static void _bind_methods() { - ObjectTypeDB::bind_method("_update",&EditorFontImportDialog::_update); - ObjectTypeDB::bind_method("_update_text",&EditorFontImportDialog::_update_text); - ObjectTypeDB::bind_method("_update_text2",&EditorFontImportDialog::_update_text2); - ObjectTypeDB::bind_method("_update_text3",&EditorFontImportDialog::_update_text3); - ObjectTypeDB::bind_method("_prop_changed",&EditorFontImportDialog::_prop_changed); - ObjectTypeDB::bind_method("_src_changed",&EditorFontImportDialog::_src_changed); - ObjectTypeDB::bind_method("_font_size_changed",&EditorFontImportDialog::_font_size_changed); - ObjectTypeDB::bind_method("_import",&EditorFontImportDialog::_import); + ClassDB::bind_method("_update",&EditorFontImportDialog::_update); + ClassDB::bind_method("_update_text",&EditorFontImportDialog::_update_text); + ClassDB::bind_method("_update_text2",&EditorFontImportDialog::_update_text2); + ClassDB::bind_method("_update_text3",&EditorFontImportDialog::_update_text3); + ClassDB::bind_method("_prop_changed",&EditorFontImportDialog::_prop_changed); + ClassDB::bind_method("_src_changed",&EditorFontImportDialog::_src_changed); + ClassDB::bind_method("_font_size_changed",&EditorFontImportDialog::_font_size_changed); + ClassDB::bind_method("_import",&EditorFontImportDialog::_import); } @@ -619,7 +619,7 @@ public: } source->get_line_edit()->set_text(src); - font_size->set_val(rimd->get_option("font/size")); + font_size->set_value(rimd->get_option("font/size")); } } @@ -634,7 +634,7 @@ public: plugin=p_plugin; VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); HBoxContainer *hbc = memnew( HBoxContainer); vbc->add_child(hbc); VBoxContainer *vbl = memnew( VBoxContainer ); @@ -658,17 +658,19 @@ public: vbl->add_margin_child(TTR("Source Font Size:"),font_size); font_size->set_min(3); font_size->set_max(256); - font_size->set_val(16); + font_size->set_value(16); font_size->connect("value_changed",this,"_font_size_changed"); dest = memnew( EditorLineEditFileChooser ); // List<String> fl; Ref<BitmapFont> font= memnew(BitmapFont); dest->get_file_dialog()->add_filter("*.fnt ; Font" ); - //ResourceSaver::get_recognized_extensions(font,&fl); - //for(List<String>::Element *E=fl.front();E;E=E->next()) { - // dest->get_file_dialog()->add_filter("*."+E->get()); - //} + /* + ResourceSaver::get_recognized_extensions(font,&fl); + for(List<String>::Element *E=fl.front();E;E=E->next()) { + dest->get_file_dialog()->add_filter("*."+E->get()); + } + */ vbl->add_margin_child(TTR("Dest Resource:"),dest); HBoxContainer *testhb = memnew( HBoxContainer ); @@ -679,7 +681,7 @@ public: testhb->add_child(test_string); test_color = memnew( ColorPickerButton ); - test_color->set_color(get_color("font_color","Label")); + test_color->set_pick_color(get_color("font_color","Label")); test_color->set_h_size_flags(SIZE_EXPAND_FILL); test_color->set_stretch_ratio(1); test_color->connect("color_changed",this,"_update_text3"); @@ -689,7 +691,7 @@ public: vbl->add_margin_child(TTR("Test:")+" ",testhb); /* HBoxContainer *upd_hb = memnew( HBoxContainer ); -// vbl->add_child(upd_hb); + //vbl->add_child(upd_hb); upd_hb->add_spacer(); Button *update = memnew( Button); upd_hb->add_child(update); @@ -754,7 +756,7 @@ struct _EditorFontData { int texture; Image blit; Point2i blit_ofs; -// bool printable; + //bool printable; }; @@ -780,13 +782,13 @@ static unsigned char get_SDF_radial( int x, int y, int max_radius ) { - // hideous brute force method + //hideous brute force method float d2 = max_radius*max_radius+1.0; unsigned char v = fontmap[x+y*w]; for( int radius = 1; (radius <= max_radius) && (radius*radius < d2); ++radius ) { int line, lo, hi; - // north + //north line = y - radius; if( (line >= 0) && (line < h) ) { @@ -797,7 +799,7 @@ static unsigned char get_SDF_radial( int idx = line * w + lo; for( int i = lo; i <= hi; ++i ) { - // check this pixel + //check this pixel if( fontmap[idx] != v ) { float nx = i - x; @@ -808,11 +810,11 @@ static unsigned char get_SDF_radial( d2 = nd2; } } - // move on + //move on ++idx; } } - // south + //south line = y + radius; if( (line >= 0) && (line < h) ) { @@ -823,7 +825,7 @@ static unsigned char get_SDF_radial( int idx = line * w + lo; for( int i = lo; i <= hi; ++i ) { - // check this pixel + //check this pixel if( fontmap[idx] != v ) { float nx = i - x; @@ -834,11 +836,11 @@ static unsigned char get_SDF_radial( d2 = nd2; } } - // move on + //move on ++idx; } } - // west + //west line = x - radius; if( (line >= 0) && (line < w) ) { @@ -849,7 +851,7 @@ static unsigned char get_SDF_radial( int idx = lo * w + line; for( int i = lo; i <= hi; ++i ) { - // check this pixel + //check this pixel if( fontmap[idx] != v ) { float nx = line - x; @@ -860,11 +862,11 @@ static unsigned char get_SDF_radial( d2 = nd2; } } - // move on + //move on idx += w; } } - // east + //east line = x + radius; if( (line >= 0) && (line < w) ) { @@ -875,7 +877,7 @@ static unsigned char get_SDF_radial( int idx = lo * w + line; for( int i = lo; i <= hi; ++i ) { - // check this pixel + //check this pixel if( fontmap[idx] != v ) { float nx = line - x; @@ -886,7 +888,7 @@ static unsigned char get_SDF_radial( d2 = nd2; } } - // move on + //move on idx += w; } } @@ -913,7 +915,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe String src_path = EditorImportPlugin::expand_source_path(from->get_source_path(0)); - if (src_path.extension().to_lower()=="fnt") { + if (src_path.get_extension().to_lower()=="fnt") { if (ResourceLoader::load(src_path).is_valid()) { EditorNode::get_singleton()->show_warning(TTR("Path:")+" "+src_path+"\n"+TTR("This file is already a Godot font file, please supply a BMFont type file instead.")); @@ -981,14 +983,14 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe FT_GlyphSlot slot = face->glyph; -// error = FT_Set_Charmap(face,ft_encoding_unicode ); /* encoding.. */ + //error = FT_Set_Charmap(face,ft_encoding_unicode ); /* encoding.. */ /* PRINT CHARACTERS TO INDIVIDUAL BITMAPS */ -// int space_size=5; //size for space, if none found.. 5! -// int min_valign=500; //some ridiculous number + //int space_size=5; //size for space, if none found.. 5! + //int min_valign=500; //some ridiculous number FT_ULong charcode; FT_UInt gindex; @@ -1080,10 +1082,10 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe if (font_mode==_EditorFontImportOptions::FONT_DISTANCE_FIELD) { - // oversize the holding buffer so I can smooth it! + //oversize the holding buffer so I can smooth it! int sw = w + scaler * 4; int sh = h + scaler * 4; - // do the SDF + //do the SDF int sdfw = sw / scaler; int sdfh = sh / scaler; @@ -1139,7 +1141,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe if (font_mode==_EditorFontImportOptions::FONT_DISTANCE_FIELD) { - // oversize the holding buffer so I can smooth it! + //oversize the holding buffer so I can smooth it! int sw = w + scaler * 4; int sh = h + scaler * 4; @@ -1330,7 +1332,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe if (err==OK) { for(int i=0;i<height;i++){ - color[i]=img.get_pixel(0,i*img.get_height()/height); + //color[i]=img.get_pixel(0,i*img.get_height()/height); } } else { @@ -1380,10 +1382,10 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe int ow=font_data_list[i]->width; int oh=font_data_list[i]->height; - DVector<uint8_t> pixels; + PoolVector<uint8_t> pixels; pixels.resize(s.x*s.y*4); - DVector<uint8_t>::Write w = pixels.write(); + PoolVector<uint8_t>::Write w = pixels.write(); //print_line("val: "+itos(font_data_list[i]->valign)); for(int y=0;y<s.height;y++) { @@ -1471,7 +1473,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe sum+=w2[ofs_l]; } - wa[ofs]=Math::pow(float(sum/(r*2+1))/255.0,tr)*255.0; + wa[ofs]=Math::pow(float(sum/(r*2+1))/255.0f,tr)*255.0f; } } @@ -1512,9 +1514,9 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe } - w=DVector<uint8_t>::Write(); + w=PoolVector<uint8_t>::Write(); - Image img(s.width,s.height,0,Image::FORMAT_RGBA,pixels); + Image img(s.width,s.height,0,Image::FORMAT_RGBA8,pixels); font_data_list[i]->blit=img; font_data_list[i]->blit_ofs=o; @@ -1537,7 +1539,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe res_size.y=nearest_power_of_2(res_size.y); print_line("Atlas size: "+res_size); - Image atlas(res_size.x,res_size.y,0,Image::FORMAT_RGBA); + Image atlas(res_size.x,res_size.y,0,Image::FORMAT_RGBA8); for(int i=0;i<font_data_list.size();i++) { @@ -1552,10 +1554,10 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe if (from->has_option("advanced/premultiply_alpha") && bool(from->get_option("advanced/premultiply_alpha"))) { - DVector<uint8_t> data = atlas.get_data(); + PoolVector<uint8_t> data = atlas.get_data(); int dl = data.size(); { - DVector<uint8_t>::Write w = data.write(); + PoolVector<uint8_t>::Write w = data.write(); for(int i=0;i<dl;i+=4) { @@ -1565,12 +1567,12 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe } } - atlas=Image(res_size.x,res_size.y,0,Image::FORMAT_RGBA,data); + atlas=Image(res_size.x,res_size.y,0,Image::FORMAT_RGBA8,data); } if (from->has_option("color/monochrome") && bool(from->get_option("color/monochrome"))) { - atlas.convert(Image::FORMAT_GRAYSCALE_ALPHA); + atlas.convert(Image::FORMAT_LA8); } @@ -1578,8 +1580,8 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe //debug the texture Ref<ImageTexture> atlast = memnew( ImageTexture ); atlast->create_from_image(atlas); -// atlast->create_from_image(font_data_list[5]->blit); - TextureFrame *tf = memnew( TextureFrame ); + //atlast->create_from_image(font_data_list[5]->blit); + TextureRect *tf = memnew( TextureRect ); tf->set_texture(atlast); dialog->add_child(tf); } @@ -1682,12 +1684,12 @@ Error EditorFontImportPlugin::import(const String& p_path, const Ref<ResourceImp void EditorFontImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) { for(int i=0;i<p_drop.size();i++) { - String ext = p_drop[i].extension().to_lower(); + String ext = p_drop[i].get_extension().to_lower(); String file = p_drop[i].get_file(); if (ext=="ttf" || ext=="otf" || ext=="fnt") { import_dialog(); - dialog->set_source_and_dest(p_drop[i],p_dest_path.plus_file(file.basename()+".fnt")); + dialog->set_source_and_dest(p_drop[i],p_dest_path.plus_file(file.get_basename()+".fnt")); break; } } diff --git a/tools/editor/io_plugins/editor_font_import_plugin.h b/tools/editor/io_plugins/editor_font_import_plugin.h index 25914e6f83..73c699c090 100644 --- a/tools/editor/io_plugins/editor_font_import_plugin.h +++ b/tools/editor/io_plugins/editor_font_import_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ class EditorFontImportDialog; class EditorFontImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorFontImportPlugin,EditorImportPlugin); + GDCLASS(EditorFontImportPlugin,EditorImportPlugin); EditorFontImportDialog *dialog; public: diff --git a/tools/editor/io_plugins/editor_import_collada.cpp b/tools/editor/io_plugins/editor_import_collada.cpp index 1130e2be30..a910b9c3ab 100644 --- a/tools/editor/io_plugins/editor_import_collada.cpp +++ b/tools/editor/io_plugins/editor_import_collada.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_import_collada.h" + #include "collada/collada.h" #include "scene/3d/spatial.h" #include "scene/3d/skeleton.h" @@ -85,11 +86,11 @@ struct ColladaImport { Error _create_scene(Collada::Node *p_node, Spatial *p_parent); Error _create_resources(Collada::Node *p_node); Error _create_material(const String& p_material); - Error _create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,const Map<String,Collada::NodeGeometry::Material>& p_material_map,const Collada::MeshData &meshdata,const Transform& p_local_xform,const Vector<int> &bone_remap, const Collada::SkinControllerData *p_skin_data, const Collada::MorphControllerData *p_morph_data,Vector<Ref<Mesh> > p_morph_meshes=Vector<Ref<Mesh> >()); + Error _create_mesh_surfaces(bool p_optimize, Ref<Mesh>& p_mesh, const Map<String,Collada::NodeGeometry::Material>& p_material_map, const Collada::MeshData &meshdata, const Transform& p_local_xform, const Vector<int> &bone_remap, const Collada::SkinControllerData *p_skin_data, const Collada::MorphControllerData *p_morph_data, Vector<Ref<Mesh> > p_morph_meshes=Vector<Ref<Mesh> >(), bool p_for_morph=false); Error load(const String& p_path, int p_flags, bool p_force_make_tangents=false); void _fix_param_animation_tracks(); - void create_animation(int p_clip,bool p_make_tracks_in_all_bones); - void create_animations(bool p_make_tracks_in_all_bones); + void create_animation(int p_clip,bool p_make_tracks_in_all_bones, bool p_import_value_tracks); + void create_animations(bool p_make_tracks_in_all_bones, bool p_import_value_tracks); Set<String> tracks_in_clips; Vector<String> missing_textures; @@ -236,20 +237,22 @@ Error ColladaImport::_create_scene(Collada::Node *p_node, Spatial *p_parent) { return OK; //well, it's an ambient light.. Light *l = memnew( DirectionalLight ); -// l->set_color(Light::COLOR_AMBIENT,ld.color); - l->set_color(Light::COLOR_DIFFUSE,Color(0,0,0)); - l->set_color(Light::COLOR_SPECULAR,Color(0,0,0)); + //l->set_color(Light::COLOR_AMBIENT,ld.color); + //l->set_color(Light::COLOR_DIFFUSE,Color(0,0,0)); + //l->set_color(Light::COLOR_SPECULAR,Color(0,0,0)); node = l; } else if (ld.mode==Collada::LightData::MODE_DIRECTIONAL) { //well, it's an ambient light.. Light *l = memnew( DirectionalLight ); - //if (found_ambient) //use it here - // l->set_color(Light::COLOR_AMBIENT,ambient); + /* + if (found_ambient) //use it here + l->set_color(Light::COLOR_AMBIENT,ambient); l->set_color(Light::COLOR_DIFFUSE,ld.color); l->set_color(Light::COLOR_SPECULAR,Color(1,1,1)); + */ node = l; } else { @@ -259,14 +262,14 @@ Error ColladaImport::_create_scene(Collada::Node *p_node, Spatial *p_parent) { l=memnew( OmniLight ); else { l=memnew( SpotLight ); - l->set_parameter(Light::PARAM_SPOT_ANGLE,ld.spot_angle); - l->set_parameter(Light::PARAM_SPOT_ATTENUATION,ld.spot_exp); + //l->set_parameter(Light::PARAM_SPOT_ANGLE,ld.spot_angle); + //l->set_parameter(Light::PARAM_SPOT_ATTENUATION,ld.spot_exp); } // - l->set_color(Light::COLOR_DIFFUSE,ld.color); - l->set_color(Light::COLOR_SPECULAR,Color(1,1,1)); - l->approximate_opengl_attenuation(ld.constant_att,ld.linear_att,ld.quad_att); + //l->set_color(Light::COLOR_DIFFUSE,ld.color); + //l->set_color(Light::COLOR_SPECULAR,Color(1,1,1)); + //l->approximate_opengl_attenuation(ld.constant_att,ld.linear_att,ld.quad_att); node=l; } @@ -377,7 +380,7 @@ Error ColladaImport::_create_material(const String& p_target) { ERR_FAIL_COND_V(!collada.state.effect_map.has(src_mat.instance_effect),ERR_INVALID_PARAMETER); Collada::Effect &effect=collada.state.effect_map[src_mat.instance_effect]; - Ref<FixedMaterial> material= memnew( FixedMaterial ); + Ref<FixedSpatialMaterial> material= memnew( FixedSpatialMaterial ); if (src_mat.name!="") material->set_name(src_mat.name); @@ -394,14 +397,15 @@ Error ColladaImport::_create_material(const String& p_target) { Ref<Texture> texture = ResourceLoader::load(texfile,"Texture"); if (texture.is_valid()) { - material->set_texture(FixedMaterial::PARAM_DIFFUSE,texture); - material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,1)); + material->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,texture); + material->set_albedo(Color(1,1,1,1)); + //material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,Color(1,1,1,1)); } else { missing_textures.push_back(texfile.get_file()); } } } else { - material->set_parameter(FixedMaterial::PARAM_DIFFUSE,effect.diffuse.color); + //material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,effect.diffuse.color); } // SPECULAR @@ -413,16 +417,18 @@ Error ColladaImport::_create_material(const String& p_target) { Ref<Texture> texture = ResourceLoader::load(texfile,"Texture"); if (texture.is_valid()) { + material->set_texture(FixedSpatialMaterial::TEXTURE_SPECULAR,texture); + material->set_specular(Color(1,1,1,1)); - material->set_texture(FixedMaterial::PARAM_SPECULAR,texture); - material->set_parameter(FixedMaterial::PARAM_SPECULAR,Color(1,1,1,1)); + //material->set_texture(FixedSpatialMaterial::PARAM_SPECULAR,texture); + //material->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR,Color(1,1,1,1)); } else { missing_textures.push_back(texfile.get_file()); } } } else { - material->set_parameter(FixedMaterial::PARAM_SPECULAR,effect.specular.color); + //material->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR,effect.specular.color); } // EMISSION @@ -435,15 +441,17 @@ Error ColladaImport::_create_material(const String& p_target) { Ref<Texture> texture = ResourceLoader::load(texfile,"Texture"); if (texture.is_valid()) { - material->set_texture(FixedMaterial::PARAM_EMISSION,texture); - material->set_parameter(FixedMaterial::PARAM_EMISSION,Color(1,1,1,1)); + material->set_texture(FixedSpatialMaterial::TEXTURE_EMISSION,texture); + material->set_emission(Color(1,1,1,1)); + + //material->set_parameter(FixedSpatialMaterial::PARAM_EMISSION,Color(1,1,1,1)); }else { - missing_textures.push_back(texfile.get_file()); + //missing_textures.push_back(texfile.get_file()); } } } else { - material->set_parameter(FixedMaterial::PARAM_EMISSION,effect.emission.color); + //material->set_parameter(FixedSpatialMaterial::PARAM_EMISSION,effect.emission.color); } // NORMAL @@ -455,19 +463,23 @@ Error ColladaImport::_create_material(const String& p_target) { Ref<Texture> texture = ResourceLoader::load(texfile,"Texture"); if (texture.is_valid()) { + material->set_texture(FixedSpatialMaterial::TEXTURE_NORMAL,texture); + //material->set_emission(Color(1,1,1,1)); - material->set_texture(FixedMaterial::PARAM_NORMAL,texture); + //material->set_texture(FixedSpatialMaterial::PARAM_NORMAL,texture); }else { - missing_textures.push_back(texfile.get_file()); + //missing_textures.push_back(texfile.get_file()); } } } - material->set_parameter(FixedMaterial::PARAM_SPECULAR_EXP,effect.shininess); - material->set_flag(Material::FLAG_DOUBLE_SIDED,effect.double_sided); - material->set_flag(Material::FLAG_UNSHADED,effect.unshaded); + //material->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR_EXP,effect.shininess); + if (effect.double_sided) { + material->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + } + material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,effect.unshaded); @@ -476,15 +488,15 @@ Error ColladaImport::_create_material(const String& p_target) { } -static void _generate_normals(const DVector<int>& p_indices,const DVector<Vector3>& p_vertices,DVector<Vector3>&r_normals) { +static void _generate_normals(const PoolVector<int>& p_indices,const PoolVector<Vector3>& p_vertices,PoolVector<Vector3>&r_normals) { r_normals.resize(p_vertices.size()); - DVector<Vector3>::Write narrayw = r_normals.write(); + PoolVector<Vector3>::Write narrayw = r_normals.write(); int iacount=p_indices.size()/3; - DVector<int>::Read index_arrayr = p_indices.read(); - DVector<Vector3>::Read vertex_arrayr = p_vertices.read(); + PoolVector<int>::Read index_arrayr = p_indices.read(); + PoolVector<Vector3>::Read vertex_arrayr = p_vertices.read(); for(int idx=0;idx<iacount;idx++) { @@ -510,7 +522,7 @@ static void _generate_normals(const DVector<int>& p_indices,const DVector<Vector } -static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const DVector<Vector3>& p_vertices,const DVector<Vector3>& p_uvs,const DVector<Vector3>& p_normals,DVector<real_t>&r_tangents) { +static void _generate_tangents_and_binormals(const PoolVector<int>& p_indices,const PoolVector<Vector3>& p_vertices,const PoolVector<Vector3>& p_uvs,const PoolVector<Vector3>& p_normals,PoolVector<real_t>&r_tangents) { int vlen=p_vertices.size(); @@ -522,10 +534,10 @@ static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const int iacount=p_indices.size()/3; - DVector<int>::Read index_arrayr = p_indices.read(); - DVector<Vector3>::Read vertex_arrayr = p_vertices.read(); - DVector<Vector3>::Read narrayr = p_normals.read(); - DVector<Vector3>::Read uvarrayr = p_uvs.read(); + PoolVector<int>::Read index_arrayr = p_indices.read(); + PoolVector<Vector3>::Read vertex_arrayr = p_vertices.read(); + PoolVector<Vector3>::Read narrayr = p_normals.read(); + PoolVector<Vector3>::Read uvarrayr = p_uvs.read(); for(int idx=0;idx<iacount;idx++) { @@ -579,7 +591,7 @@ static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const } r_tangents.resize(vlen*4); - DVector<real_t>::Write tarrayw = r_tangents.write(); + PoolVector<real_t>::Write tarrayw = r_tangents.write(); for(int idx=0;idx<vlen;idx++) { Vector3 tangent = tangents[idx]; @@ -597,7 +609,7 @@ static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const } } -Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,const Map<String,Collada::NodeGeometry::Material>& p_material_map,const Collada::MeshData &meshdata,const Transform& p_local_xform,const Vector<int> &bone_remap, const Collada::SkinControllerData *skin_controller, const Collada::MorphControllerData *p_morph_data,Vector<Ref<Mesh> > p_morph_meshes) { +Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,const Map<String,Collada::NodeGeometry::Material>& p_material_map,const Collada::MeshData &meshdata,const Transform& p_local_xform,const Vector<int> &bone_remap, const Collada::SkinControllerData *skin_controller, const Collada::MorphControllerData *p_morph_data,Vector<Ref<Mesh> > p_morph_meshes,bool p_for_morph) { bool local_xform_mirror=p_local_xform.basis.determinant() < 0; @@ -615,12 +627,12 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con ERR_FAIL_COND_V( !collada.state.mesh_data_map.has(target), ERR_INVALID_DATA ); String name = collada.state.mesh_data_map[target].name; - p_mesh->add_morph_target(name); + p_mesh->add_blend_shape(name); } if (p_morph_data->mode=="RELATIVE") - p_mesh->set_morph_target_mode(Mesh::MORPH_MODE_RELATIVE); + p_mesh->set_blend_shape_mode(Mesh::BLEND_SHAPE_MODE_RELATIVE); else if (p_morph_data->mode=="NORMALIZED") - p_mesh->set_morph_target_mode(Mesh::MORPH_MODE_NORMALIZED); + p_mesh->set_blend_shape_mode(Mesh::BLEND_SHAPE_MODE_NORMALIZED); } @@ -1022,9 +1034,9 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con } - DVector<int> index_array; + PoolVector<int> index_array; index_array.resize(indices_list.size()); - DVector<int>::Write index_arrayw = index_array.write(); + PoolVector<int>::Write index_arrayw = index_array.write(); int iidx=0; for(List<int>::Element *F=indices_list.front();F;F=F->next()) { @@ -1032,7 +1044,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con index_arrayw[iidx++]=F->get(); } - index_arrayw=DVector<int>::Write(); + index_arrayw=PoolVector<int>::Write(); /*****************/ @@ -1042,7 +1054,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con { - Ref<FixedMaterial> material; + Ref<FixedSpatialMaterial> material; //find material Mesh::PrimitiveType primitive=Mesh::PRIMITIVE_TRIANGLES; @@ -1066,14 +1078,14 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con - DVector<Vector3> final_vertex_array; - DVector<Vector3> final_normal_array; - DVector<float> final_tangent_array; - DVector<Color> final_color_array; - DVector<Vector3> final_uv_array; - DVector<Vector3> final_uv2_array; - DVector<float> final_bone_array; - DVector<float> final_weight_array; + PoolVector<Vector3> final_vertex_array; + PoolVector<Vector3> final_normal_array; + PoolVector<float> final_tangent_array; + PoolVector<Color> final_color_array; + PoolVector<Vector3> final_uv_array; + PoolVector<Vector3> final_uv2_array; + PoolVector<int> final_bone_array; + PoolVector<float> final_weight_array; uint32_t final_format=0; @@ -1108,65 +1120,67 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con int vlen = vertex_array.size(); { //vertices - DVector<Vector3> varray; + PoolVector<Vector3> varray; varray.resize(vertex_array.size()); - DVector<Vector3>::Write varrayw = varray.write(); + PoolVector<Vector3>::Write varrayw = varray.write(); for(int k=0;k<vlen;k++) varrayw[k]=vertex_array[k].vertex; - varrayw = DVector<Vector3>::Write(); + varrayw = PoolVector<Vector3>::Write(); final_vertex_array=varray; } if (uv_src) { //compute uv first, may be needed for computing tangent/bionrmal - DVector<Vector3> uvarray; + PoolVector<Vector3> uvarray; uvarray.resize(vertex_array.size()); - DVector<Vector3>::Write uvarrayw = uvarray.write(); + PoolVector<Vector3>::Write uvarrayw = uvarray.write(); for(int k=0;k<vlen;k++) { uvarrayw[k]=vertex_array[k].uv; } - uvarrayw = DVector<Vector3>::Write(); + uvarrayw = PoolVector<Vector3>::Write(); final_uv_array=uvarray; } if (uv2_src) { //compute uv first, may be needed for computing tangent/bionrmal - DVector<Vector3> uv2array; + PoolVector<Vector3> uv2array; uv2array.resize(vertex_array.size()); - DVector<Vector3>::Write uv2arrayw = uv2array.write(); + PoolVector<Vector3>::Write uv2arrayw = uv2array.write(); for(int k=0;k<vlen;k++) { uv2arrayw[k]=vertex_array[k].uv2; } - uv2arrayw = DVector<Vector3>::Write(); + uv2arrayw = PoolVector<Vector3>::Write(); final_uv2_array=uv2array; } if (normal_src) { - DVector<Vector3> narray; + PoolVector<Vector3> narray; narray.resize(vertex_array.size()); - DVector<Vector3>::Write narrayw = narray.write(); + PoolVector<Vector3>::Write narrayw = narray.write(); for(int k=0;k<vlen;k++) { narrayw[k]=vertex_array[k].normal; } - narrayw = DVector<Vector3>::Write(); + narrayw = PoolVector<Vector3>::Write(); final_normal_array=narray; - //DVector<Vector3> altnaray; - //_generate_normals(index_array,final_vertex_array,altnaray); + /* + PoolVector<Vector3> altnaray; + _generate_normals(index_array,final_vertex_array,altnaray); - //for(int i=0;i<altnaray.size();i++) - // print_line(rtos(altnaray[i].dot(final_normal_array[i]))); + for(int i=0;i<altnaray.size();i++) + print_line(rtos(altnaray[i].dot(final_normal_array[i]))); + */ } else if (primitive==Mesh::PRIMITIVE_TRIANGLES) { //generate normals (even if unused later) @@ -1180,9 +1194,9 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con if (final_normal_array.size() && uv_src && binormal_src && tangent_src && !force_make_tangents) { - DVector<real_t> tarray; + PoolVector<real_t> tarray; tarray.resize(vertex_array.size()*4); - DVector<real_t>::Write tarrayw = tarray.write(); + PoolVector<real_t>::Write tarrayw = tarray.write(); for(int k=0;k<vlen;k++) { @@ -1193,10 +1207,10 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con } - tarrayw = DVector<real_t>::Write(); + tarrayw = PoolVector<real_t>::Write(); final_tangent_array=tarray; - } else if (final_normal_array.size() && primitive==Mesh::PRIMITIVE_TRIANGLES && final_uv_array.size() && (force_make_tangents || (material.is_valid() && material->get_texture(FixedMaterial::PARAM_NORMAL).is_valid()))){ + } else if (final_normal_array.size() && primitive==Mesh::PRIMITIVE_TRIANGLES && final_uv_array.size() && (force_make_tangents || (material.is_valid()))){ //if this uses triangles, there are uvs and the material is using a normalmap, generate tangents and binormals, because they WILL be needed //generate binormals/tangents _generate_tangents_and_binormals(index_array,final_vertex_array,final_uv_array,final_normal_array,final_tangent_array); @@ -1208,27 +1222,27 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con if (color_src) { - DVector<Color> colorarray; + PoolVector<Color> colorarray; colorarray.resize(vertex_array.size()); - DVector<Color>::Write colorarrayw = colorarray.write(); + PoolVector<Color>::Write colorarrayw = colorarray.write(); for(int k=0;k<vlen;k++) { colorarrayw[k]=vertex_array[k].color; } - colorarrayw = DVector<Color>::Write(); + colorarrayw = PoolVector<Color>::Write(); final_color_array=colorarray; } if (has_weights) { - DVector<float> weightarray; - DVector<float> bonearray; + PoolVector<float> weightarray; + PoolVector<int> bonearray; weightarray.resize(vertex_array.size()*4); - DVector<float>::Write weightarrayw = weightarray.write(); + PoolVector<float>::Write weightarrayw = weightarray.write(); bonearray.resize(vertex_array.size()*4); - DVector<float>::Write bonearrayw = bonearray.write(); + PoolVector<int>::Write bonearrayw = bonearray.write(); for(int k=0;k<vlen;k++) { float sum=0; @@ -1237,7 +1251,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con if (l<vertex_array[k].weights.size()) { weightarrayw[k*VS::ARRAY_WEIGHTS_SIZE+l]=vertex_array[k].weights[l].weight; sum+=weightarrayw[k*VS::ARRAY_WEIGHTS_SIZE+l]; - bonearrayw[k*VS::ARRAY_WEIGHTS_SIZE+l]=vertex_array[k].weights[l].bone_idx; + bonearrayw[k*VS::ARRAY_WEIGHTS_SIZE+l]=int(vertex_array[k].weights[l].bone_idx); //COLLADA_PRINT(itos(k)+": "+rtos(bonearrayw[k*VS::ARRAY_WEIGHTS_SIZE+l])+":"+rtos(weightarray[k*VS::ARRAY_WEIGHTS_SIZE+l])); } else { @@ -1248,13 +1262,15 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con } -// if (sum<0.8) -// COLLADA_PRINT("ERROR SUMMING INDEX "+itos(k)+" had weights: "+itos(vertex_array[k].weights.size())); + /* + if (sum<0.8) + COLLADA_PRINT("ERROR SUMMING INDEX "+itos(k)+" had weights: "+itos(vertex_array[k].weights.size())); + */ } - weightarrayw = DVector<float>::Write(); - bonearrayw = DVector<float>::Write(); + weightarrayw = PoolVector<float>::Write(); + bonearrayw = PoolVector<int>::Write(); final_weight_array = weightarray; final_bone_array = bonearray; @@ -1317,7 +1333,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con // morph anything but "POSITIONS" seem to exit. Because of this, normals and binormals/tangents have to be regenerated here, // which may result in inaccurate (but most of the time good enough) results. - DVector<Vector3> vertices; + PoolVector<Vector3> vertices; vertices.resize(vlen); ERR_FAIL_COND_V( md.vertices.size() != 1, ERR_INVALID_DATA); @@ -1336,7 +1352,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con //read vertices from morph target - DVector<Vector3>::Write vertw = vertices.write(); + PoolVector<Vector3>::Write vertw = vertices.write(); for(int m_i=0;m_i<m->array.size()/stride;m_i++) { @@ -1372,9 +1388,9 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con //vertices are in place, now generate everything else - vertw = DVector<Vector3>::Write(); - DVector<Vector3> normals; - DVector<float> tangents; + vertw = PoolVector<Vector3>::Write(); + PoolVector<Vector3> normals; + PoolVector<float> tangents; print_line("vertex source id: "+vertex_src_id); if(md.vertices[vertex_src_id].sources.has("NORMAL")){ //has normals @@ -1393,7 +1409,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con //read normals from morph target - DVector<Vector3>::Write vertw = normals.write(); + PoolVector<Vector3>::Write vertw = normals.write(); for(int m_i=0;m_i<m->array.size()/stride;m_i++) { @@ -1459,16 +1475,22 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con #endif for(int mi=0;mi<p_morph_meshes.size();mi++) { - // print_line("want surface "+itos(mi)+" has "+itos(p_morph_meshes[mi]->get_surface_count())); + //print_line("want surface "+itos(mi)+" has "+itos(p_morph_meshes[mi]->get_surface_count())); Array a = p_morph_meshes[mi]->surface_get_arrays(surface); - a[Mesh::ARRAY_BONES]=Variant(); - a[Mesh::ARRAY_WEIGHTS]=Variant(); + //add valid weight and bone arrays if they exist, TODO check if they are unique to shape (generally not) + + if (final_weight_array.size()) + a[Mesh::ARRAY_WEIGHTS]=final_weight_array; + if (final_bone_array.size()) + a[Mesh::ARRAY_BONES]=final_bone_array; + a[Mesh::ARRAY_INDEX]=Variant(); //a.resize(Mesh::ARRAY_MAX); //no need for index mr.push_back(a); } - p_mesh->add_surface(Mesh::PRIMITIVE_TRIANGLES,d,mr); + + p_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES,d,mr,p_for_morph?0:Mesh::ARRAY_COMPRESS_DEFAULT); if (material.is_valid()) { p_mesh->surface_set_material(surface, material); @@ -1692,7 +1714,7 @@ Error ColladaImport::_create_resources(Collada::Node *p_node) { if (collada.state.mesh_data_map.has(meshid)) { Ref<Mesh> mesh=Ref<Mesh>(memnew( Mesh )); const Collada::MeshData &meshdata = collada.state.mesh_data_map[meshid]; - Error err = _create_mesh_surfaces(false,mesh,ng->material_map,meshdata,apply_xform,bone_remap,skin,NULL); + Error err = _create_mesh_surfaces(false,mesh,ng->material_map,meshdata,apply_xform,bone_remap,skin,NULL,Vector<Ref<Mesh> >(),true); ERR_FAIL_COND_V(err,err); morphs.push_back(mesh); @@ -1898,7 +1920,7 @@ void ColladaImport::_fix_param_animation_tracks() { } -void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) { +void ColladaImport::create_animations(bool p_make_tracks_in_all_bones, bool p_import_value_tracks) { _fix_param_animation_tracks(); @@ -1943,14 +1965,14 @@ void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) { } - create_animation(-1,p_make_tracks_in_all_bones); + create_animation(-1,p_make_tracks_in_all_bones, p_import_value_tracks); //print_line("clipcount: "+itos(collada.state.animation_clips.size())); for(int i=0;i<collada.state.animation_clips.size();i++) - create_animation(i,p_make_tracks_in_all_bones); + create_animation(i, p_make_tracks_in_all_bones, p_import_value_tracks); } -void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones) { +void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones, bool p_import_value_tracks) { Ref<Animation> animation = Ref<Animation>( memnew( Animation )); @@ -2251,64 +2273,68 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones + if (p_import_value_tracks) { + for (int i = 0; i < valid_animated_properties.size(); i++) { - for(int i=0;i<valid_animated_properties.size();i++) { + int ti = valid_animated_properties[i]; - int ti = valid_animated_properties[i]; + if (p_clip == -1) { - if (p_clip==-1) { + if (track_filter.has(ti)) + continue; + } + else { - if (track_filter.has(ti)) - continue; - } else { + if (!track_filter.has(ti)) + continue; - if (!track_filter.has(ti)) - continue; + } - } + Collada::AnimationTrack &at = collada.state.animation_tracks[ti]; - Collada::AnimationTrack &at = collada.state.animation_tracks[ ti ]; + // take snapshots + if (!collada.state.scene_map.has(at.target)) + continue; - // take snapshots - if (!collada.state.scene_map.has(at.target)) - continue; + NodeMap &nm = node_map[at.target]; + String path = scene->get_path_to(nm.node); - NodeMap &nm = node_map[at.target]; - String path = scene->get_path_to(nm.node); + animation->add_track(Animation::TYPE_VALUE); + int track = animation->get_track_count() - 1; - animation->add_track(Animation::TYPE_VALUE); - int track = animation->get_track_count() -1; + path = path + ":" + at.param; + animation->track_set_path(track, path); + animation->track_set_imported(track, true); //helps merging later - path = path +":"+at.param; - animation->track_set_path( track , path ); - animation->track_set_imported( track , true ); //helps merging later + for (int i = 0; i < at.keys.size(); i++) { - for(int i=0;i<at.keys.size();i++) { + float time = at.keys[i].time; + Variant value; + Vector<float> data = at.keys[i].data; + if (data.size() == 1) { + //push a float + value = data[0]; - float time = at.keys[i].time; - Variant value; - Vector<float> data = at.keys[i].data; - if (data.size()==1) { - //push a float - value=data[0]; + } + else if (data.size() == 16) { + //matrix + print_line("value keys for matrices not supported"); + } + else { - } else if (data.size()==16) { - //matrix - print_line("value keys for matrices not supported"); - } else { + print_line("don't know what to do with this amount of value keys: " + itos(data.size())); + } - print_line("don't know what to do with this amount of value keys: "+itos(data.size())); + animation->track_insert_key(track, time, value); } - animation->track_insert_key(track,time,value); - } - - tracks_found=true; + tracks_found = true; + } } @@ -2356,9 +2382,11 @@ Node* EditorSceneImporterCollada::import_scene(const String& p_path, uint32_t p_ if (state.missing_textures.size()) { - //for(int i=0;i<state.missing_textures.size();i++) { -// EditorNode::add_io_error("Texture Not Found: "+state.missing_textures[i]); -// } + /* + for(int i=0;i<state.missing_textures.size();i++) { + EditorNode::add_io_error("Texture Not Found: "+state.missing_textures[i]); + } + */ if (r_missing_deps) { @@ -2373,7 +2401,7 @@ Node* EditorSceneImporterCollada::import_scene(const String& p_path, uint32_t p_ if (p_flags&IMPORT_ANIMATION) { - state.create_animations(p_flags&IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS); + state.create_animations(p_flags&IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS,p_flags&EditorSceneImporter::IMPORT_ANIMATION_KEEP_VALUE_TRACKS); AnimationPlayer *ap = memnew( AnimationPlayer ); for(int i=0;i<state.animations.size();i++) { String name; @@ -2410,7 +2438,7 @@ Ref<Animation> EditorSceneImporterCollada::import_animation(const String& p_path ERR_FAIL_COND_V(err!=OK,RES()); - state.create_animations(p_flags&EditorSceneImporter::IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS); + state.create_animations(p_flags&EditorSceneImporter::IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS,p_flags&EditorSceneImporter::IMPORT_ANIMATION_KEEP_VALUE_TRACKS); if (state.scene) memdelete(state.scene); @@ -2419,7 +2447,7 @@ Ref<Animation> EditorSceneImporterCollada::import_animation(const String& p_path Ref<Animation> anim=state.animations[0]; anim=state.animations[0]; print_line("Anim Load OK"); - String base = p_path.basename().to_lower(); + String base = p_path.get_basename().to_lower(); if (p_flags&IMPORT_ANIMATION_DETECT_LOOP) { if (base.begins_with("loop") || base.ends_with("loop") || base.begins_with("cycle") || base.ends_with("cycle")) { diff --git a/tools/editor/io_plugins/editor_import_collada.h b/tools/editor/io_plugins/editor_import_collada.h index de45dc38f4..f6642778ed 100644 --- a/tools/editor/io_plugins/editor_import_collada.h +++ b/tools/editor/io_plugins/editor_import_collada.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,7 +35,7 @@ class EditorSceneImporterCollada : public EditorSceneImporter { - OBJ_TYPE(EditorSceneImporterCollada,EditorSceneImporter ); + GDCLASS(EditorSceneImporterCollada,EditorSceneImporter ); public: virtual uint32_t get_import_flags() const; diff --git a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp index da608292c1..d07a21fc7d 100644 --- a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp +++ b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -32,7 +32,7 @@ #include "tools/editor/editor_dir_dialog.h" #include "tools/editor/editor_node.h" #include "tools/editor/property_editor.h" -#include "scene/resources/sample.h" +//#include "scene/resources/sample.h" #include "io/resource_saver.h" #include "os/file_access.h" #include "io/marshalls.h" @@ -40,7 +40,7 @@ class _EditorMeshImportOptions : public Object { - OBJ_TYPE(_EditorMeshImportOptions,Object); + GDCLASS(_EditorMeshImportOptions,Object); public: @@ -148,7 +148,7 @@ public: class EditorMeshImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorMeshImportDialog,ConfirmationDialog); + GDCLASS(EditorMeshImportDialog,ConfirmationDialog); EditorMeshImportPlugin *plugin; @@ -259,7 +259,7 @@ public: imd->add_source(EditorImportPlugin::validate_source_path(meshes[i])); - String file_path = dst.plus_file(meshes[i].get_file().basename()+".msh"); + String file_path = dst.plus_file(meshes[i].get_file().get_basename()+".msh"); plugin->import(file_path,imd); } @@ -278,11 +278,11 @@ public: static void _bind_methods() { - ObjectTypeDB::bind_method("_choose_files",&EditorMeshImportDialog::_choose_files); - ObjectTypeDB::bind_method("_choose_save_dir",&EditorMeshImportDialog::_choose_save_dir); - ObjectTypeDB::bind_method("_import",&EditorMeshImportDialog::_import); - ObjectTypeDB::bind_method("_browse",&EditorMeshImportDialog::_browse); - ObjectTypeDB::bind_method("_browse_target",&EditorMeshImportDialog::_browse_target); + ClassDB::bind_method("_choose_files",&EditorMeshImportDialog::_choose_files); + ClassDB::bind_method("_choose_save_dir",&EditorMeshImportDialog::_choose_save_dir); + ClassDB::bind_method("_import",&EditorMeshImportDialog::_import); + ClassDB::bind_method("_browse",&EditorMeshImportDialog::_browse); + ClassDB::bind_method("_browse_target",&EditorMeshImportDialog::_browse_target); } EditorMeshImportDialog(EditorMeshImportPlugin *p_plugin) { @@ -294,7 +294,7 @@ public: VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); HBoxContainer *hbc = memnew( HBoxContainer ); vbc->add_margin_child(TTR("Source Mesh(es):"),hbc); @@ -568,7 +568,7 @@ void EditorMeshImportPlugin::import_from_drop(const Vector<String>& p_drop, cons Vector<String> files; for(int i=0;i<p_drop.size();i++) { - String ext = p_drop[i].extension().to_lower(); + String ext = p_drop[i].get_extension().to_lower(); String file = p_drop[i].get_file(); if (ext=="obj") { diff --git a/tools/editor/io_plugins/editor_mesh_import_plugin.h b/tools/editor/io_plugins/editor_mesh_import_plugin.h index d200603e6a..1f15fee3a7 100644 --- a/tools/editor/io_plugins/editor_mesh_import_plugin.h +++ b/tools/editor/io_plugins/editor_mesh_import_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -38,7 +38,7 @@ class EditorMeshImportDialog; class EditorMeshImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorMeshImportPlugin,EditorImportPlugin); + GDCLASS(EditorMeshImportPlugin,EditorImportPlugin); EditorMeshImportDialog *dialog; diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.cpp b/tools/editor/io_plugins/editor_sample_import_plugin.cpp index 7dc74e58dd..631291ec1b 100644 --- a/tools/editor/io_plugins/editor_sample_import_plugin.cpp +++ b/tools/editor/io_plugins/editor_sample_import_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,19 +27,21 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_sample_import_plugin.h" + #include "tools/editor/editor_file_dialog.h" #include "tools/editor/editor_dir_dialog.h" #include "tools/editor/editor_node.h" #include "tools/editor/property_editor.h" -#include "scene/resources/sample.h" #include "io/resource_saver.h" #include "os/file_access.h" #include "io/marshalls.h" #include "tools/editor/editor_settings.h" +#if 0 + class _EditorSampleImportOptions : public Object { - OBJ_TYPE(_EditorSampleImportOptions,Object); + GDCLASS(_EditorSampleImportOptions,Object); public: enum CompressMode { @@ -166,7 +168,7 @@ public: class EditorSampleImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorSampleImportDialog,ConfirmationDialog); + GDCLASS(EditorSampleImportDialog,ConfirmationDialog); EditorSampleImportPlugin *plugin; @@ -296,7 +298,7 @@ public: error_dialog->popup_centered(Size2(200,100)*EDSCALE); } - dst = dst.plus_file(samples[i].get_file().basename()+".smp"); + dst = dst.plus_file(samples[i].get_file().get_basename()+".smp"); plugin->import(dst,imd); } @@ -318,12 +320,12 @@ public: static void _bind_methods() { - ObjectTypeDB::bind_method("_choose_files",&EditorSampleImportDialog::_choose_files); - ObjectTypeDB::bind_method("_choose_save_dir",&EditorSampleImportDialog::_choose_save_dir); - ObjectTypeDB::bind_method("_import",&EditorSampleImportDialog::_import); - ObjectTypeDB::bind_method("_browse",&EditorSampleImportDialog::_browse); - ObjectTypeDB::bind_method("_browse_target",&EditorSampleImportDialog::_browse_target); - // ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); + ClassDB::bind_method("_choose_files",&EditorSampleImportDialog::_choose_files); + ClassDB::bind_method("_choose_save_dir",&EditorSampleImportDialog::_choose_save_dir); + ClassDB::bind_method("_import",&EditorSampleImportDialog::_import); + ClassDB::bind_method("_browse",&EditorSampleImportDialog::_browse); + ClassDB::bind_method("_browse_target",&EditorSampleImportDialog::_browse_target); + //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); } EditorSampleImportDialog(EditorSampleImportPlugin *p_plugin) { @@ -335,7 +337,7 @@ public: VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); HBoxContainer *hbc = memnew( HBoxContainer ); @@ -373,7 +375,7 @@ public: save_select = memnew( EditorDirDialog ); add_child(save_select); - // save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); + //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); save_select->connect("dir_selected", this,"_choose_save_dir"); get_ok()->connect("pressed", this,"_import"); @@ -383,7 +385,7 @@ public: error_dialog = memnew ( ConfirmationDialog ); add_child(error_dialog); error_dialog->get_ok()->set_text(TTR("Accept")); - // error_dialog->get_cancel()->hide(); + //error_dialog->get_cancel()->hide(); set_hide_on_ok(false); options = memnew( _EditorSampleImportOptions ); @@ -443,8 +445,8 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI data.resize(len*chans); { - DVector<uint8_t> src_data = smp->get_data(); - DVector<uint8_t>::Read sr = src_data.read(); + PoolVector<uint8_t> src_data = smp->get_data(); + PoolVector<uint8_t>::Read sr = src_data.read(); for(int i=0;i<len*chans;i++) { @@ -539,7 +541,7 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI int first=0; int last=(len*chans)-1; bool found=false; - float limit = Math::db2linear(-30); + float limit = Math::db2linear((float)-30); for(int i=0;i<data.size();i++) { float amp = Math::abs(data[i]); @@ -602,7 +604,7 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI } - DVector<uint8_t> dst_data; + PoolVector<uint8_t> dst_data; Sample::Format dst_format; if ( compression == _EditorSampleImportOptions::COMPRESS_MODE_RAM) { @@ -629,8 +631,8 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI right[i]=data[i*2+1]; } - DVector<uint8_t> bleft; - DVector<uint8_t> bright; + PoolVector<uint8_t> bleft; + PoolVector<uint8_t> bright; _compress_ima_adpcm(left,bleft); _compress_ima_adpcm(right,bright); @@ -638,9 +640,9 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI int dl = bleft.size(); dst_data.resize( dl *2 ); - DVector<uint8_t>::Write w=dst_data.write(); - DVector<uint8_t>::Read rl=bleft.read(); - DVector<uint8_t>::Read rr=bright.read(); + PoolVector<uint8_t>::Write w=dst_data.write(); + PoolVector<uint8_t>::Read rl=bleft.read(); + PoolVector<uint8_t>::Read rr=bright.read(); for(int i=0;i<dl;i++) { w[i*2+0]=rl[i]; @@ -648,14 +650,14 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI } } -// print_line("compressing ima-adpcm, resulting buffersize is "+itos(dst_data.size())+" from "+itos(data.size())); + //print_line("compressing ima-adpcm, resulting buffersize is "+itos(dst_data.size())+" from "+itos(data.size())); } else { dst_format=is16?Sample::FORMAT_PCM16:Sample::FORMAT_PCM8; dst_data.resize( data.size() * (is16?2:1)); { - DVector<uint8_t>::Write w = dst_data.write(); + PoolVector<uint8_t>::Write w = dst_data.write(); int ds=data.size(); for(int i=0;i<ds;i++) { @@ -700,7 +702,7 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI } -void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,DVector<uint8_t>& dst_data) { +void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,PoolVector<uint8_t>& dst_data) { /*p_sample_data->data = (void*)malloc(len); @@ -730,7 +732,7 @@ void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,D datalen++; dst_data.resize(datalen/2+4); - DVector<uint8_t>::Write w = dst_data.write(); + PoolVector<uint8_t>::Write w = dst_data.write(); int i,step_idx=0,prev=0; @@ -758,12 +760,14 @@ void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,D xm_sample=CLAMP(in[i]*32767.0,-32768,32767); - //if (xm_sample==32767 || xm_sample==-32768) - // printf("clippy!\n",xm_sample); + /* + if (xm_sample==32767 || xm_sample==-32768) + printf("clippy!\n",xm_sample); + */ } - // xm_sample=xm_sample+xm_prev; - // xm_prev=xm_sample; + //xm_sample=xm_sample+xm_prev; + //xm_prev=xm_sample; diff = (int)xm_sample - prev ; @@ -828,7 +832,7 @@ void EditorSampleImportPlugin::import_from_drop(const Vector<String>& p_drop, co Vector<String> files; for(int i=0;i<p_drop.size();i++) { - String ext = p_drop[i].extension().to_lower(); + String ext = p_drop[i].get_extension().to_lower(); if (ext=="wav") { @@ -887,7 +891,7 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref - if (EditorImportExport::get_singleton()->sample_get_action()==EditorImportExport::SAMPLE_ACTION_NONE || p_path.extension().to_lower()!="wav") { + if (EditorImportExport::get_singleton()->sample_get_action()==EditorImportExport::SAMPLE_ACTION_NONE || p_path.get_extension().to_lower()!="wav") { return Vector<uint8_t>(); } @@ -911,7 +915,7 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref ERR_FAIL_COND_V(err!=OK,Vector<uint8_t>()); - p_path=p_path.basename()+".converted.smp"; + p_path=p_path.get_basename()+".converted.smp"; return FileAccess::get_file_as_array(savepath); } @@ -921,3 +925,5 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref EditorSampleExportPlugin::EditorSampleExportPlugin() { } + +#endif diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.h b/tools/editor/io_plugins/editor_sample_import_plugin.h index a2686ebe4f..8e02d0e11d 100644 --- a/tools/editor/io_plugins/editor_sample_import_plugin.h +++ b/tools/editor/io_plugins/editor_sample_import_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,6 +29,7 @@ #ifndef EDITOR_SAMPLE_IMPORT_PLUGIN_H #define EDITOR_SAMPLE_IMPORT_PLUGIN_H +#if 0 #include "tools/editor/editor_import_export.h" #include "scene/resources/font.h" @@ -37,10 +38,10 @@ class EditorSampleImportDialog; class EditorSampleImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorSampleImportPlugin,EditorImportPlugin); + GDCLASS(EditorSampleImportPlugin,EditorImportPlugin); EditorSampleImportDialog *dialog; - void _compress_ima_adpcm(const Vector<float>& p_data,DVector<uint8_t>& dst_data); + void _compress_ima_adpcm(const Vector<float>& p_data,PoolVector<uint8_t>& dst_data); public: static EditorSampleImportPlugin *singleton; @@ -59,7 +60,7 @@ public: class EditorSampleExportPlugin : public EditorExportPlugin { - OBJ_TYPE( EditorSampleExportPlugin, EditorExportPlugin); + GDCLASS( EditorSampleExportPlugin, EditorExportPlugin); public: @@ -70,3 +71,4 @@ public: }; #endif // EDITOR_SAMPLE_IMPORT_PLUGIN_H +#endif diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.cpp b/tools/editor/io_plugins/editor_scene_import_plugin.cpp index 56af35c6db..ce6c49fcba 100644 --- a/tools/editor/io_plugins/editor_scene_import_plugin.cpp +++ b/tools/editor/io_plugins/editor_scene_import_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_scene_import_plugin.h" + #include "globals.h" #include "tools/editor/editor_node.h" #include "scene/resources/packed_scene.h" @@ -82,7 +83,7 @@ EditorScenePostImport::EditorScenePostImport() { class EditorImportAnimationOptions : public VBoxContainer { - OBJ_TYPE( EditorImportAnimationOptions, VBoxContainer ); + GDCLASS( EditorImportAnimationOptions, VBoxContainer ); @@ -147,7 +148,7 @@ public: class EditorSceneImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorSceneImportDialog,ConfirmationDialog); + GDCLASS(EditorSceneImportDialog,ConfirmationDialog); struct FlagInfo { @@ -374,10 +375,10 @@ void EditorImportAnimationOptions::_item_edited() { void EditorImportAnimationOptions::_bind_methods() { - ObjectTypeDB::bind_method("_changed",&EditorImportAnimationOptions::_changed); - ObjectTypeDB::bind_method("_item_edited",&EditorImportAnimationOptions::_item_edited); - ObjectTypeDB::bind_method("_button_action",&EditorImportAnimationOptions::_button_action); -// ObjectTypeDB::bind_method("_changedp",&EditorImportAnimationOptions::_changedp); + ClassDB::bind_method("_changed",&EditorImportAnimationOptions::_changed); + ClassDB::bind_method("_item_edited",&EditorImportAnimationOptions::_item_edited); + ClassDB::bind_method("_button_action",&EditorImportAnimationOptions::_button_action); + //ClassDB::bind_method("_changedp",&EditorImportAnimationOptions::_changedp); ADD_SIGNAL(MethodInfo("changed")); } @@ -390,7 +391,7 @@ void EditorImportAnimationOptions::_notification(int p_what) { flags->connect("item_edited",this,"_changed"); clips_tree->connect("item_edited",this,"_item_edited"); clips_tree->connect("button_pressed",this,"_button_action",varray(),CONNECT_DEFERRED); -// format->connect("item_selected",this,"_changedp"); + //format->connect("item_selected",this,"_changedp"); } } @@ -659,7 +660,7 @@ void EditorSceneImportDialog::_choose_file(const String& p_path) { import_path->set_text(p_path); if (root_node_name->get_text().size()==0){ - root_node_name->set_text(import_path->get_text().get_file().basename()); + root_node_name->set_text(import_path->get_text().get_file().get_basename()); } } @@ -670,9 +671,9 @@ void EditorSceneImportDialog::_choose_save_file(const String& p_path) { void EditorSceneImportDialog::_choose_script(const String& p_path) { - String p = Globals::get_singleton()->localize_path(p_path); + String p = GlobalConfig::get_singleton()->localize_path(p_path); if (!p.is_resource_file()) - p=Globals::get_singleton()->get_resource_path().path_to(p_path.get_base_dir())+p_path.get_file(); + p=GlobalConfig::get_singleton()->get_resource_path().path_to(p_path.get_base_dir())+p_path.get_file(); script_path->set_text(p); } @@ -725,7 +726,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) { if (texture_action->get_selected()==0) dst_path=save_path->get_text();//.get_base_dir(); else - dst_path=Globals::get_singleton()->get("import/shared_textures"); + dst_path=GlobalConfig::get_singleton()->get("import/shared_textures"); uint32_t flags=0; @@ -763,7 +764,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) { // Scenes should always be imported as binary format since vertex data is large and would take // up a lot of space and time to load if imported as text format (GH-5778) - String save_file = save_path->get_text().plus_file(import_path->get_text().get_file().basename()+".scn"); + String save_file = save_path->get_text().plus_file(import_path->get_text().get_file().get_basename()+".scn"); print_line("Saving to: "+save_file); @@ -794,7 +795,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) { rim->set_option("root_type",root_type->get_text()); } if (root_node_name->get_text().size()==0) { - root_node_name->set_text(import_path->get_text().get_file().basename()); + root_node_name->set_text(import_path->get_text().get_file().get_basename()); } rim->set_option("root_name",root_node_name->get_text()); @@ -894,9 +895,9 @@ void EditorSceneImportDialog::_browse() { void EditorSceneImportDialog::_browse_target() { + save_select->popup_centered_ratio(); if (save_path->get_text()!="") save_select->set_current_path(save_path->get_text()); - save_select->popup_centered_ratio(); } @@ -1058,19 +1059,19 @@ void EditorSceneImportDialog::_set_root_type() { void EditorSceneImportDialog::_bind_methods() { - ObjectTypeDB::bind_method("_choose_file",&EditorSceneImportDialog::_choose_file); - ObjectTypeDB::bind_method("_choose_save_file",&EditorSceneImportDialog::_choose_save_file); - ObjectTypeDB::bind_method("_choose_script",&EditorSceneImportDialog::_choose_script); - ObjectTypeDB::bind_method("_import",&EditorSceneImportDialog::_import,DEFVAL(false)); - ObjectTypeDB::bind_method("_browse",&EditorSceneImportDialog::_browse); - ObjectTypeDB::bind_method("_browse_target",&EditorSceneImportDialog::_browse_target); - ObjectTypeDB::bind_method("_browse_script",&EditorSceneImportDialog::_browse_script); - ObjectTypeDB::bind_method("_dialog_hid",&EditorSceneImportDialog::_dialog_hid); - ObjectTypeDB::bind_method("_import_confirm",&EditorSceneImportDialog::_import_confirm); - ObjectTypeDB::bind_method("_open_and_import",&EditorSceneImportDialog::_open_and_import); - ObjectTypeDB::bind_method("_root_default_pressed",&EditorSceneImportDialog::_root_default_pressed); - ObjectTypeDB::bind_method("_root_type_pressed",&EditorSceneImportDialog::_root_type_pressed); - ObjectTypeDB::bind_method("_set_root_type",&EditorSceneImportDialog::_set_root_type); + ClassDB::bind_method("_choose_file",&EditorSceneImportDialog::_choose_file); + ClassDB::bind_method("_choose_save_file",&EditorSceneImportDialog::_choose_save_file); + ClassDB::bind_method("_choose_script",&EditorSceneImportDialog::_choose_script); + ClassDB::bind_method("_import",&EditorSceneImportDialog::_import,DEFVAL(false)); + ClassDB::bind_method("_browse",&EditorSceneImportDialog::_browse); + ClassDB::bind_method("_browse_target",&EditorSceneImportDialog::_browse_target); + ClassDB::bind_method("_browse_script",&EditorSceneImportDialog::_browse_script); + ClassDB::bind_method("_dialog_hid",&EditorSceneImportDialog::_dialog_hid); + ClassDB::bind_method("_import_confirm",&EditorSceneImportDialog::_import_confirm); + ClassDB::bind_method("_open_and_import",&EditorSceneImportDialog::_open_and_import); + ClassDB::bind_method("_root_default_pressed",&EditorSceneImportDialog::_root_default_pressed); + ClassDB::bind_method("_root_type_pressed",&EditorSceneImportDialog::_root_type_pressed); + ClassDB::bind_method("_set_root_type",&EditorSceneImportDialog::_set_root_type); ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); @@ -1115,7 +1116,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce set_title(TTR("Import 3D Scene")); HBoxContainer *import_hb = memnew( HBoxContainer ); add_child(import_hb); - set_child_rect(import_hb); + //set_child_rect(import_hb); VBoxContainer *vbc = memnew( VBoxContainer ); import_hb->add_child(vbc); @@ -1237,7 +1238,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce error_dialog = memnew ( ConfirmationDialog ); add_child(error_dialog); error_dialog->get_ok()->set_text(TTR("Accept")); -// error_dialog->get_cancel()->hide(); + //error_dialog->get_cancel()->hide(); HBoxContainer *custom_root_hb = memnew( HBoxContainer ); @@ -1275,7 +1276,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce set_hide_on_ok(false); GLOBAL_DEF("import/shared_textures","res://"); - Globals::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR)); + GlobalConfig::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR)); import_hb->add_constant_override("separation",30); @@ -1302,7 +1303,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce add_child(confirm_import); VBoxContainer *cvb = memnew( VBoxContainer ); confirm_import->add_child(cvb); - confirm_import->set_child_rect(cvb); + //confirm_import->set_child_rect(cvb); PanelContainer *pc = memnew( PanelContainer ); pc->add_style_override("panel",get_stylebox("normal","TextEdit")); @@ -1394,7 +1395,7 @@ void EditorSceneImportPlugin::_find_resources(const Variant& p_var, Map<Ref<Imag Ref<Resource> res = p_var; if (res.is_valid()) { - if (res->is_type("Texture") && !image_map.has(res)) { + if (res->is_class("Texture") && !image_map.has(res)) { image_map.insert(res,TEXTURE_ROLE_DEFAULT); @@ -1407,7 +1408,7 @@ void EditorSceneImportPlugin::_find_resources(const Variant& p_var, Map<Ref<Imag for(List<PropertyInfo>::Element *E=pl.front();E;E=E->next()) { if (E->get().type==Variant::OBJECT || E->get().type==Variant::ARRAY || E->get().type==Variant::DICTIONARY) { - if (E->get().type==Variant::OBJECT && res->cast_to<FixedMaterial>() && (E->get().name=="textures/diffuse" || E->get().name=="textures/detail" || E->get().name=="textures/emission")) { + if (E->get().type==Variant::OBJECT && res->cast_to<FixedSpatialMaterial>() && (E->get().name=="textures/diffuse" || E->get().name=="textures/detail" || E->get().name=="textures/emission")) { Ref<ImageTexture> tex =res->get(E->get().name); if (tex.is_valid()) { @@ -1415,14 +1416,16 @@ void EditorSceneImportPlugin::_find_resources(const Variant& p_var, Map<Ref<Imag image_map.insert(tex,TEXTURE_ROLE_DIFFUSE); } - } else if (E->get().type==Variant::OBJECT && res->cast_to<FixedMaterial>() && (E->get().name=="textures/normal")) { + } else if (E->get().type==Variant::OBJECT && res->cast_to<FixedSpatialMaterial>() && (E->get().name=="textures/normal")) { Ref<ImageTexture> tex =res->get(E->get().name); if (tex.is_valid()) { image_map.insert(tex,TEXTURE_ROLE_NORMALMAP); + /* if (p_flags&SCENE_FLAG_CONVERT_NORMALMAPS_TO_XY) - res->cast_to<FixedMaterial>()->set_fixed_flag(FixedMaterial::FLAG_USE_XY_NORMALMAP,true); + res->cast_to<FixedSpatialMaterial>()->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_XY_NORMALMAP,true); + */ } @@ -1529,12 +1532,12 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> Ref<Mesh> m = mi->get_mesh(); for(int i=0;i<m->get_surface_count();i++) { - Ref<FixedMaterial> fm = m->surface_get_material(i); + Ref<FixedSpatialMaterial> fm = m->surface_get_material(i); if (fm.is_valid()) { - fm->set_flag(Material::FLAG_UNSHADED,true); - fm->set_flag(Material::FLAG_DOUBLE_SIDED,true); - fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true); + //fm->set_flag(Material::FLAG_UNSHADED,true); + //fm->set_flag(Material::FLAG_DOUBLE_SIDED,true); + //fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); + //fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true); } } } @@ -1552,23 +1555,23 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> for(int i=0;i<m->get_surface_count();i++) { - Ref<FixedMaterial> mat = m->surface_get_material(i); + Ref<FixedSpatialMaterial> mat = m->surface_get_material(i); if (!mat.is_valid()) continue; if (p_flags&SCENE_FLAG_DETECT_ALPHA && _teststr(mat->get_name(),"alpha")) { - mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true); - mat->set_name(_fixstr(mat->get_name(),"alpha")); + //mat->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true); + //mat->set_name(_fixstr(mat->get_name(),"alpha")); } if (p_flags&SCENE_FLAG_DETECT_VCOLOR && _teststr(mat->get_name(),"vcol")) { - mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true); - mat->set_name(_fixstr(mat->get_name(),"vcol")); + //mat->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY,true); + //mat->set_name(_fixstr(mat->get_name(),"vcol")); } if (p_flags&SCENE_FLAG_SET_LIGHTMAP_TO_UV2_IF_EXISTS && m->surface_get_format(i)&Mesh::ARRAY_FORMAT_TEX_UV2) { - mat->set_flag(Material::FLAG_LIGHTMAP_ON_UV2,true); + //mat->set_flag(Material::FLAG_LIGHTMAP_ON_UV2,true); } } @@ -1627,23 +1630,23 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> float dist = d.to_double(); mi->set_flag(GeometryInstance::FLAG_BILLBOARD,true); mi->set_flag(GeometryInstance::FLAG_BILLBOARD_FIX_Y,true); - mi->set_draw_range_begin(dist); - mi->set_draw_range_end(100000); + //mi->set_draw_range_begin(dist); + //mi->set_draw_range_end(100000); - mip->set_draw_range_begin(0); - mip->set_draw_range_end(dist); + //mip->set_draw_range_begin(0); + //mip->set_draw_range_end(dist); if (mi->get_mesh().is_valid()) { Ref<Mesh> m = mi->get_mesh(); for(int i=0;i<m->get_surface_count();i++) { - Ref<FixedMaterial> fm = m->surface_get_material(i); + Ref<FixedSpatialMaterial> fm = m->surface_get_material(i); if (fm.is_valid()) { - fm->set_flag(Material::FLAG_UNSHADED,true); - fm->set_flag(Material::FLAG_DOUBLE_SIDED,true); - fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true); + //fm->set_flag(Material::FLAG_UNSHADED,true); + //fm->set_flag(Material::FLAG_DOUBLE_SIDED,true); + //fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); + //fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true); } } } @@ -1675,23 +1678,23 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> d=d.substr(1,d.length()); if (d.length() && d[0]>='0' && d[0]<='9') { float dist = d.to_double(); - mi->set_draw_range_begin(dist); - mi->set_draw_range_end(100000); + /// mi->set_draw_range_begin(dist); + // mi->set_draw_range_end(100000); - mip->set_draw_range_begin(0); - mip->set_draw_range_end(dist); + // mip->set_draw_range_begin(0); + // mip->set_draw_range_end(dist); /*if (mi->get_mesh().is_valid()) { Ref<Mesh> m = mi->get_mesh(); for(int i=0;i<m->get_surface_count();i++) { - Ref<FixedMaterial> fm = m->surface_get_material(i); + Ref<FixedSpatialMaterial> fm = m->surface_get_material(i); if (fm.is_valid()) { fm->set_flag(Material::FLAG_UNSHADED,true); fm->set_flag(Material::FLAG_DOUBLE_SIDED,true); fm->set_hint(Material::HINT_NO_DEPTH_DRAW,true); - fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true); + fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true); } } }*/ @@ -1707,7 +1710,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> String str=name; int layer = str.substr(str.find("lm")+3,str.length()).to_int(); - mi->set_baked_light_texture_id(layer); + //mi->set_baked_light_texture_id(layer); } if (p_flags&SCENE_FLAG_CREATE_COLLISIONS && _teststr(name,"colonly")) { @@ -1773,7 +1776,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> // get mesh instance and bounding box MeshInstance *mi = p_node->cast_to<MeshInstance>(); - AABB aabb = mi->get_aabb(); + Rect3 aabb = mi->get_aabb(); // create a new rigid body collision node RigidBody * rigid_body = memnew( RigidBody ); @@ -1788,7 +1791,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> Node * mesh = p_node->duplicate(); mesh->set_name(_fixstr(name,"rigid")); // reset the xform matrix of the duplicated node so it can inherit parent node xform - mesh->cast_to<Spatial>()->set_transform(Transform(Matrix3())); + mesh->cast_to<Spatial>()->set_transform(Transform(Basis())); // reparent the new mesh node to the rigid body collision node p_node->add_child(mesh); mesh->set_owner(p_node->get_owner()); @@ -1897,14 +1900,14 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> return p_node; MeshInstance *mi = p_node->cast_to<MeshInstance>(); - DVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID); + PoolVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID); BSP_Tree bsptree(faces); Ref<RoomBounds> area = memnew( RoomBounds ); - area->set_bounds(faces); - area->set_geometry_hint(faces); + //area->set_bounds(faces); + //area->set_geometry_hint(faces); Room * room = memnew( Room ); @@ -1932,7 +1935,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> memdelete(p_node); p_node=room; - room->compute_room_from_subtree(); + //room->compute_room_from_subtree(); } else if (p_flags&SCENE_FLAG_CREATE_PORTALS &&_teststr(name,"portal") && p_node->cast_to<MeshInstance>()) { @@ -1940,7 +1943,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> return p_node; MeshInstance *mi = p_node->cast_to<MeshInstance>(); - DVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID); + PoolVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID); ERR_FAIL_COND_V(faces.size()==0,NULL); //step 1 compute the plane @@ -2059,18 +2062,18 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh> for(int i=0;i<mesh->get_surface_count();i++) { - Ref<FixedMaterial> fm = mesh->surface_get_material(i); + Ref<FixedSpatialMaterial> fm = mesh->surface_get_material(i); if (fm.is_valid()) { String name = fm->get_name(); - if (_teststr(name,"alpha")) { - fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true); + /* if (_teststr(name,"alpha")) { + fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true); name=_fixstr(name,"alpha"); } if (_teststr(name,"vcol")) { - fm->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true); + fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY,true); name=_fixstr(name,"vcol"); - } + }*/ fm->set_name(name); } } @@ -2124,7 +2127,7 @@ Error EditorSceneImportPlugin::import1(const Ref<ResourceImportMetadata>& p_from String src_path=EditorImportPlugin::expand_source_path(from->get_source_path(0)); Ref<EditorSceneImporter> importer; - String ext=src_path.extension().to_lower(); + String ext=src_path.get_extension().to_lower(); EditorProgress progress("import",TTR("Import Scene"),104); @@ -2164,14 +2167,18 @@ Error EditorSceneImportPlugin::import1(const Ref<ResourceImportMetadata>& p_from uint32_t import_flags=0; if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_DETECT_LOOP) import_flags|=EditorSceneImporter::IMPORT_ANIMATION_DETECT_LOOP; + if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_KEEP_VALUE_TRACKS) + import_flags |= EditorSceneImporter::IMPORT_ANIMATION_KEEP_VALUE_TRACKS; if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_OPTIMIZE) import_flags|=EditorSceneImporter::IMPORT_ANIMATION_OPTIMIZE; if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS) import_flags|=EditorSceneImporter::IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS; if (scene_flags&SCENE_FLAG_IMPORT_ANIMATIONS) import_flags|=EditorSceneImporter::IMPORT_ANIMATION; - //if (scene_flags&SCENE_FLAG_FAIL_ON_MISSING_IMAGES) - // import_flags|=EditorSceneImporter::IMPORT_FAIL_ON_MISSING_DEPENDENCIES; + /* + if (scene_flags&SCENE_FLAG_FAIL_ON_MISSING_IMAGES) + import_flags|=EditorSceneImporter::IMPORT_FAIL_ON_MISSING_DEPENDENCIES; + */ if (scene_flags&SCENE_FLAG_GENERATE_TANGENT_ARRAYS) import_flags|=EditorSceneImporter::IMPORT_GENERATE_TANGENT_ARRAYS; @@ -2187,7 +2194,7 @@ Error EditorSceneImportPlugin::import1(const Ref<ResourceImportMetadata>& p_from if (from->has_option("root_type")) { String type = from->get_option("root_type"); - Object *base = ObjectTypeDB::instance(type); + Object *base = ClassDB::instance(type); Node *base_node = NULL; if (base) base_node=base->cast_to<Node>(); @@ -2799,7 +2806,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c String path = texture->get_path(); String fname= path.get_file(); - String target_path = Globals::get_singleton()->localize_path(target_res_path.plus_file(fname)); + String target_path = GlobalConfig::get_singleton()->localize_path(target_res_path.plus_file(fname)); progress.step(TTR("Import Image:")+" "+fname,3+(idx)*100/imagemap.size()); idx++; @@ -2819,7 +2826,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c { - target_path=target_path.basename()+".tex"; + target_path=target_path.get_basename()+".tex"; Ref<ResourceImportMetadata> imd = memnew( ResourceImportMetadata ); @@ -2934,7 +2941,7 @@ void EditorSceneImportPlugin::import_from_drop(const Vector<String>& p_drop,cons //bool warn_compatible=false; for(int i=0;i<p_drop.size();i++) { - String extension = p_drop[i].extension().to_lower(); + String extension = p_drop[i].get_extension().to_lower(); for(List<String>::Element *E=extensions.front();E;E=E->next()) { diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.h b/tools/editor/io_plugins/editor_scene_import_plugin.h index c31d3a33d3..61153e3654 100644 --- a/tools/editor/io_plugins/editor_scene_import_plugin.h +++ b/tools/editor/io_plugins/editor_scene_import_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -51,7 +51,7 @@ class EditorSceneImportDialog; class EditorSceneImporter : public Reference { - OBJ_TYPE(EditorSceneImporter,Reference ); + GDCLASS(EditorSceneImporter,Reference ); public: enum ImportFlags { @@ -60,6 +60,7 @@ public: IMPORT_ANIMATION_DETECT_LOOP=4, IMPORT_ANIMATION_OPTIMIZE=8, IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS=16, + IMPORT_ANIMATION_KEEP_VALUE_TRACKS=32, IMPORT_GENERATE_TANGENT_ARRAYS=256, IMPORT_FAIL_ON_MISSING_DEPENDENCIES=512 @@ -82,7 +83,7 @@ public: class EditorScenePostImport : public Reference { - OBJ_TYPE(EditorScenePostImport,Reference ); + GDCLASS(EditorScenePostImport,Reference ); protected: static void _bind_methods(); @@ -95,7 +96,7 @@ public: class EditorSceneImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorSceneImportPlugin,EditorImportPlugin); + GDCLASS(EditorSceneImportPlugin,EditorImportPlugin); EditorSceneImportDialog *dialog; @@ -173,7 +174,7 @@ public: class EditorSceneAnimationImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorSceneAnimationImportPlugin,EditorImportPlugin); + GDCLASS(EditorSceneAnimationImportPlugin,EditorImportPlugin); public: diff --git a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp index ac3c4637c2..af12d85650 100644 --- a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp +++ b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,13 +27,14 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_scene_importer_fbxconv.h" + #include "os/file_access.h" #include "os/os.h" #include "tools/editor/editor_settings.h" #include "scene/3d/mesh_instance.h" #include "scene/animation/animation_player.h" - +#if 0 String EditorSceneImporterFBXConv::_id(const String& p_id) const { return p_id.replace(":","_").replace("/","_"); @@ -336,7 +337,7 @@ void EditorSceneImporterFBXConv::_add_surface(State& state,Ref<Mesh>& m,const Di int idx = m->get_surface_count(); Array array = state.surface_cache[id].array; - DVector<float> indices = array[Mesh::ARRAY_BONES]; + PoolVector<float> indices = array[Mesh::ARRAY_BONES]; if (indices.size() && part.has("bones")) { @@ -361,7 +362,7 @@ void EditorSceneImporterFBXConv::_add_surface(State& state,Ref<Mesh>& m,const Di int ilen=indices.size(); { - DVector<float>::Write iw=indices.write(); + PoolVector<float>::Write iw=indices.write(); for(int j=0;j<ilen;j++) { int b = iw[j]; ERR_CONTINUE(!index_map.has(b)); @@ -482,29 +483,29 @@ void EditorSceneImporterFBXConv::_parse_materials(State& state) { ERR_CONTINUE(!material.has("id")); String id = _id(material["id"]); - Ref<FixedMaterial> mat = memnew( FixedMaterial ); + Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial ); if (material.has("diffuse")) { - mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,_get_color(material["diffuse"])); + mat->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,_get_color(material["diffuse"])); } if (material.has("specular")) { - mat->set_parameter(FixedMaterial::PARAM_SPECULAR,_get_color(material["specular"])); + mat->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR,_get_color(material["specular"])); } if (material.has("emissive")) { - mat->set_parameter(FixedMaterial::PARAM_EMISSION,_get_color(material["emissive"])); + mat->set_parameter(FixedSpatialMaterial::PARAM_EMISSION,_get_color(material["emissive"])); } if (material.has("shininess")) { float exp = material["shininess"]; - mat->set_parameter(FixedMaterial::PARAM_SPECULAR_EXP,exp); + mat->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR_EXP,exp); } if (material.has("opacity")) { - Color c = mat->get_parameter(FixedMaterial::PARAM_DIFFUSE); + Color c = mat->get_parameter(FixedSpatialMaterial::PARAM_DIFFUSE); c.a=material["opacity"]; - mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,c); + mat->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,c); } @@ -536,15 +537,15 @@ void EditorSceneImporterFBXConv::_parse_materials(State& state) { String type=texture["type"]; if (type=="DIFFUSE") - mat->set_texture(FixedMaterial::PARAM_DIFFUSE,tex); + mat->set_texture(FixedSpatialMaterial::PARAM_DIFFUSE,tex); else if (type=="SPECULAR") - mat->set_texture(FixedMaterial::PARAM_SPECULAR,tex); + mat->set_texture(FixedSpatialMaterial::PARAM_SPECULAR,tex); else if (type=="SHININESS") - mat->set_texture(FixedMaterial::PARAM_SPECULAR_EXP,tex); + mat->set_texture(FixedSpatialMaterial::PARAM_SPECULAR_EXP,tex); else if (type=="NORMAL") - mat->set_texture(FixedMaterial::PARAM_NORMAL,tex); + mat->set_texture(FixedSpatialMaterial::PARAM_NORMAL,tex); else if (type=="EMISSIVE") - mat->set_texture(FixedMaterial::PARAM_EMISSION,tex); + mat->set_texture(FixedSpatialMaterial::PARAM_EMISSION,tex); } } @@ -680,11 +681,11 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) { case Mesh::ARRAY_VERTEX: case Mesh::ARRAY_NORMAL: { - DVector<Vector3> vtx; + PoolVector<Vector3> vtx; vtx.resize(array.size()); { int len=array.size(); - DVector<Vector3>::Write w = vtx.write(); + PoolVector<Vector3>::Write w = vtx.write(); for(int l=0;l<len;l++) { int pos = array[l]; @@ -701,12 +702,12 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) { if (binormal_ofs<0) break; - DVector<float> tangents; + PoolVector<float> tangents; tangents.resize(array.size()*4); { int len=array.size(); - DVector<float>::Write w = tangents.write(); + PoolVector<float>::Write w = tangents.write(); for(int l=0;l<len;l++) { int pos = array[l]; @@ -736,11 +737,11 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) { } break; case Mesh::ARRAY_COLOR: { - DVector<Color> cols; + PoolVector<Color> cols; cols.resize(array.size()); { int len=array.size(); - DVector<Color>::Write w = cols.write(); + PoolVector<Color>::Write w = cols.write(); for(int l=0;l<len;l++) { int pos = array[l]; @@ -756,11 +757,11 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) { case Mesh::ARRAY_TEX_UV: case Mesh::ARRAY_TEX_UV2: { - DVector<Vector2> uvs; + PoolVector<Vector2> uvs; uvs.resize(array.size()); { int len=array.size(); - DVector<Vector2>::Write w = uvs.write(); + PoolVector<Vector2>::Write w = uvs.write(); for(int l=0;l<len;l++) { int pos = array[l]; @@ -775,14 +776,14 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) { case Mesh::ARRAY_BONES: case Mesh::ARRAY_WEIGHTS: { - DVector<float> arr; + PoolVector<float> arr; arr.resize(array.size()*4); int po=k==Mesh::ARRAY_WEIGHTS?1:0; lofs=ofs[Mesh::ARRAY_BONES]; { int len=array.size(); - DVector<float>::Write w = arr.write(); + PoolVector<float>::Write w = arr.write(); for(int l=0;l<len;l++) { int pos = array[l]; @@ -801,12 +802,12 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) { } break; case Mesh::ARRAY_INDEX: { - DVector<int> arr; + PoolVector<int> arr; arr.resize(indices.size()); { int len=indices.size(); - DVector<int>::Write w = arr.write(); + PoolVector<int>::Write w = arr.write(); for(int l=0;l<len;l++) { w[l]=iarray[ indices[l] ]; @@ -838,10 +839,10 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) { } if (pt==Mesh::PRIMITIVE_TRIANGLES) { - DVector<int> ia=arrays[Mesh::ARRAY_INDEX]; + PoolVector<int> ia=arrays[Mesh::ARRAY_INDEX]; int len=ia.size(); { - DVector<int>::Write w=ia.write(); + PoolVector<int>::Write w=ia.write(); for(int l=0;l<len;l+=3) { SWAP(w[l+1],w[l+2]); } @@ -1132,3 +1133,4 @@ EditorSceneImporterFBXConv::EditorSceneImporterFBXConv() { #endif } +#endif diff --git a/tools/editor/io_plugins/editor_scene_importer_fbxconv.h b/tools/editor/io_plugins/editor_scene_importer_fbxconv.h index b0cbc07ba3..1bf96ba0e5 100644 --- a/tools/editor/io_plugins/editor_scene_importer_fbxconv.h +++ b/tools/editor/io_plugins/editor_scene_importer_fbxconv.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -32,10 +32,11 @@ #include "tools/editor/io_plugins/editor_scene_import_plugin.h" #include "scene/3d/skeleton.h" +#if 0 class EditorSceneImporterFBXConv : public EditorSceneImporter { - OBJ_TYPE(EditorSceneImporterFBXConv,EditorSceneImporter ); + GDCLASS(EditorSceneImporterFBXConv,EditorSceneImporter ); struct BoneInfo { @@ -107,3 +108,4 @@ public: }; #endif // EDITOR_SCENE_IMPORTER_FBXCONV_H +#endif diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.cpp b/tools/editor/io_plugins/editor_texture_import_plugin.cpp index 2935ea8fe2..8e1bcb8e4b 100644 --- a/tools/editor/io_plugins/editor_texture_import_plugin.cpp +++ b/tools/editor/io_plugins/editor_texture_import_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_texture_import_plugin.h" + #include "io/image_loader.h" #include "tools/editor/editor_node.h" #include "io/resource_saver.h" @@ -106,12 +107,12 @@ void EditorImportTextureOptions::set_flags(uint32_t p_flags){ void EditorImportTextureOptions::set_quality(float p_quality) { - quality->set_val(p_quality); + quality->set_value(p_quality); } float EditorImportTextureOptions::get_quality() const { - return quality->get_val(); + return quality->get_value(); } @@ -148,8 +149,8 @@ void EditorImportTextureOptions::_changed() { void EditorImportTextureOptions::_bind_methods() { - ObjectTypeDB::bind_method("_changed",&EditorImportTextureOptions::_changed); - ObjectTypeDB::bind_method("_changedp",&EditorImportTextureOptions::_changedp); + ClassDB::bind_method("_changed",&EditorImportTextureOptions::_changed); + ClassDB::bind_method("_changedp",&EditorImportTextureOptions::_changedp); ADD_SIGNAL(MethodInfo("changed")); } @@ -200,7 +201,7 @@ EditorImportTextureOptions::EditorImportTextureOptions() { hs->set_min(0); hs->set_max(1.0); hs->set_step(0.01); - hs->set_val(0.7); + hs->set_value(0.7); quality=hs; quality_vb->add_margin_child(TTR("Texture Compression Quality (WebP):"),quality_hb); @@ -236,7 +237,7 @@ EditorImportTextureOptions::EditorImportTextureOptions() { class EditorTextureImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorTextureImportDialog,ConfirmationDialog); + GDCLASS(EditorTextureImportDialog,ConfirmationDialog); @@ -344,7 +345,7 @@ void EditorTextureImportDialog::_choose_save_dir(const String& p_path) { void EditorTextureImportDialog::_import() { -// ImportMonitorBlock imb; + //ImportMonitorBlock imb; Vector<String> files=import_path->get_text().split(","); @@ -396,7 +397,7 @@ void EditorTextureImportDialog::_import() { imd->set_option("flags",texture_options->get_flags()); imd->set_option("quality",texture_options->get_quality()); imd->set_option("atlas",true); - imd->set_option("atlas_size",int(size->get_val())); + imd->set_option("atlas_size",int(size->get_value())); imd->set_option("large",false); imd->set_option("crop",crop_source->is_pressed()); imd->set_option("mode",mode); @@ -430,7 +431,7 @@ void EditorTextureImportDialog::_import() { imd->set_option("quality",texture_options->get_quality()); imd->set_option("atlas",false); imd->set_option("large",true); - imd->set_option("large_cell_size",int(size->get_val())); + imd->set_option("large_cell_size",int(size->get_value())); imd->set_option("crop",crop_source->is_pressed()); imd->set_option("mode",mode); @@ -448,7 +449,7 @@ void EditorTextureImportDialog::_import() { for(int i=0;i<files.size();i++) { String dst_file = dst_path.plus_file(files[i].get_file()); - dst_file=dst_file.basename()+".tex"; + dst_file=dst_file.get_basename()+".tex"; Ref<ResourceImportMetadata> imd = memnew( ResourceImportMetadata ); //imd->set_editor(); imd->add_source(EditorImportPlugin::validate_source_path(files[i])); @@ -539,7 +540,7 @@ void EditorTextureImportDialog::_notification(int p_what) { List<String> extensions; ImageLoader::get_recognized_extensions(&extensions); - // ResourceLoader::get_recognized_extensions_for_type("PackedTexture",&extensions); + //ResourceLoader::get_recognized_extensions_for_type("PackedTexture",&extensions); file_select->clear_filters(); for(int i=0;i<extensions.size();i++) { @@ -569,7 +570,7 @@ void EditorTextureImportDialog::_mode_changed(int p_mode) { if (p_mode==EditorTextureImportPlugin::MODE_ATLAS) { size_label->set_text(TTR("Max Texture Size:")); - size->set_val(2048); + size->set_value(2048); crop_source->show(); size_label->show(); size->show(); @@ -587,7 +588,7 @@ void EditorTextureImportDialog::_mode_changed(int p_mode) { if (p_mode==EditorTextureImportPlugin::MODE_LARGE) { size_label->set_text(TTR("Cell Size:")); - size->set_val(256); + size->set_value(256); size_label->show(); size->show(); @@ -636,14 +637,14 @@ void EditorTextureImportDialog::_mode_changed(int p_mode) { void EditorTextureImportDialog::_bind_methods() { - ObjectTypeDB::bind_method("_choose_files",&EditorTextureImportDialog::_choose_files); - ObjectTypeDB::bind_method("_choose_file",&EditorTextureImportDialog::_choose_file); - ObjectTypeDB::bind_method("_choose_save_dir",&EditorTextureImportDialog::_choose_save_dir); - ObjectTypeDB::bind_method("_import",&EditorTextureImportDialog::_import); - ObjectTypeDB::bind_method("_browse",&EditorTextureImportDialog::_browse); - ObjectTypeDB::bind_method("_browse_target",&EditorTextureImportDialog::_browse_target); - ObjectTypeDB::bind_method("_mode_changed",&EditorTextureImportDialog::_mode_changed); -// ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); + ClassDB::bind_method("_choose_files",&EditorTextureImportDialog::_choose_files); + ClassDB::bind_method("_choose_file",&EditorTextureImportDialog::_choose_file); + ClassDB::bind_method("_choose_save_dir",&EditorTextureImportDialog::_choose_save_dir); + ClassDB::bind_method("_import",&EditorTextureImportDialog::_import); + ClassDB::bind_method("_browse",&EditorTextureImportDialog::_browse); + ClassDB::bind_method("_browse_target",&EditorTextureImportDialog::_browse_target); + ClassDB::bind_method("_mode_changed",&EditorTextureImportDialog::_mode_changed); + //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); } EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin* p_plugin) { @@ -657,14 +658,14 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin* mode_hb = memnew( HBoxContainer ); add_child(mode_hb); - set_child_rect(mode_hb); + //set_child_rect(mode_hb); VBoxContainer *vbcg = memnew( VBoxContainer); mode_hb->add_child(vbcg); mode_hb->add_constant_override("separation",15); - ButtonGroup *bg = memnew( ButtonGroup ); + VBoxContainer *bg = memnew( VBoxContainer ); vbcg->add_margin_child("Import Mode",bg); for(int i=0;i<EditorTextureImportPlugin::MODE_MAX;i++) { @@ -727,7 +728,7 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin* size->set_max(16384); - size->set_val(256); + size->set_value(256); size_mc=vbc->add_margin_child(TTR("Cell Size:"),size); size_label=vbc->get_child(size_mc->get_index()-1)->cast_to<Label>(); @@ -760,32 +761,34 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin* save_select = memnew( EditorDirDialog ); add_child(save_select); -// save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); + //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); save_select->connect("dir_selected", this,"_choose_save_dir"); get_ok()->connect("pressed", this,"_import"); get_ok()->set_text(TTR("Import")); //move stuff up - //for(int i=0;i<4;i++) - // vbc->move_child( vbc->get_child( vbc->get_child_count() -1), 0); + /* + for(int i=0;i<4;i++) + vbc->move_child( vbc->get_child( vbc->get_child_count() -1), 0); + */ error_dialog = memnew ( ConfirmationDialog ); add_child(error_dialog); error_dialog->get_ok()->set_text(TTR("Accept")); -// error_dialog->get_cancel()->hide(); + //error_dialog->get_cancel()->hide(); set_hide_on_ok(false); - texture_options = memnew( EditorImportTextureOptions );; + texture_options = memnew( EditorImportTextureOptions ); vbc->add_child(texture_options); texture_options->set_v_size_flags(SIZE_EXPAND_FILL); _mode_changed(EditorTextureImportPlugin::MODE_TEXTURE_3D); -// GLOBAL_DEF("import/shared_textures","res://"); -// Globals::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR)); + //GLOBAL_DEF("import/shared_textures","res://"); + //Globals::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR)); } @@ -843,33 +846,27 @@ void EditorTextureImportPlugin::compress_image(EditorExportPlatform::ImageCompre //do absolutely nothing - } break; - case EditorExportPlatform::IMAGE_COMPRESSION_INDEXED: { - - //quantize - image.quantize(); - - } break; + } break; case EditorExportPlatform::IMAGE_COMPRESSION_BC: { // for maximum compatibility, BC shall always use mipmaps and be PO2 image.resize_to_po2(); - if (image.get_mipmaps()==0) + if (!image.has_mipmaps()) image.generate_mipmaps(); - image.compress(Image::COMPRESS_BC); + image.compress(Image::COMPRESS_S3TC); /* if (has_alpha) { if (flags&IMAGE_FLAG_ALPHA_BIT) { - image.convert(Image::FORMAT_BC3); + image.convert(Image::FORMAT_DXT5); } else { - image.convert(Image::FORMAT_BC2); + image.convert(Image::FORMAT_DXT3); } } else { - image.convert(Image::FORMAT_BC1); + image.convert(Image::FORMAT_DXT1); }*/ @@ -880,24 +877,24 @@ void EditorTextureImportPlugin::compress_image(EditorExportPlatform::ImageCompre // for maximum compatibility (hi apple!), PVRT shall always // use mipmaps, be PO2 and square - if (image.get_mipmaps()==0) + if (!image.has_mipmaps()) image.generate_mipmaps(); image.resize_to_po2(true); if (p_smaller) { image.compress(Image::COMPRESS_PVRTC2); - //image.convert(has_alpha ? Image::FORMAT_PVRTC2_ALPHA : Image::FORMAT_PVRTC2); + //image.convert(has_alpha ? Image::FORMAT_PVRTC2A : Image::FORMAT_PVRTC2); } else { image.compress(Image::COMPRESS_PVRTC4); - //image.convert(has_alpha ? Image::FORMAT_PVRTC4_ALPHA : Image::FORMAT_PVRTC4); + //image.convert(has_alpha ? Image::FORMAT_PVRTC4A : Image::FORMAT_PVRTC4); } } break; case EditorExportPlatform::IMAGE_COMPRESSION_ETC1: { image.resize_to_po2(); //square or not? - if (image.get_mipmaps()==0) + if (!image.has_mipmaps()) image.generate_mipmaps(); if (!image.detect_alpha()) { //ETC1 is only opaque @@ -930,18 +927,18 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur ERR_FAIL_COND_V(image.empty(),ERR_INVALID_DATA); bool has_alpha=image.detect_alpha(); - if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) { + if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) { - image.convert(Image::FORMAT_RGB); + image.convert(Image::FORMAT_RGB8); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { image.fix_alpha_edges(); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) { image.premultiply_alpha(); } @@ -950,10 +947,12 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur image.normalmap_to_xy(); } - //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { + /* + if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { - // image.srgb_to_linear(); - //} + image.srgb_to_linear(); + } + */ if (shrink>1) { @@ -989,18 +988,18 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur bool has_alpha=image.detect_alpha(); - if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) { + if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) { - image.convert(Image::FORMAT_RGB); + image.convert(Image::FORMAT_RGB8); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { image.fix_alpha_edges(); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) { image.premultiply_alpha(); } @@ -1009,11 +1008,13 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur image.normalmap_to_xy(); } - //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { -// - // print_line("CONVERT BECAUSE: "+itos(flags)); - // image.srgb_to_linear(); - //} + /* + if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { + + print_line("CONVERT BECAUSE: "+itos(flags)); + image.srgb_to_linear(); + } + */ int orig_w=image.get_width(); int orig_h=image.get_height(); @@ -1200,14 +1201,14 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc Image src = tsources[i]; if (alpha) { - src.convert(Image::FORMAT_RGBA); + src.convert(Image::FORMAT_RGBA8); } else { - src.convert(Image::FORMAT_RGB); + src.convert(Image::FORMAT_RGB8); } - DVector<uint8_t> data = src.get_data(); + PoolVector<uint8_t> data = src.get_data(); MD5_CTX md5; - DVector<uint8_t>::Read r=data.read(); + PoolVector<uint8_t>::Read r=data.read(); MD5Init(&md5); int len=data.size(); for(int j=0;j<len;j++) { @@ -1280,7 +1281,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc atlas_h=nearest_power_of_2(dst_size.height); } Image atlas; - atlas.create(atlas_w,atlas_h,0,alpha?Image::FORMAT_RGBA:Image::FORMAT_RGB); + atlas.create(atlas_w,atlas_h,0,alpha?Image::FORMAT_RGBA8:Image::FORMAT_RGB8); atlases.resize(from->get_source_count()); @@ -1313,9 +1314,9 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc String spath = from->get_source_path(E->get()).get_file(); if (p_external) { - apath = p_path.get_base_dir().plus_file(spath.basename()+"."+from->get_source_path(E->get()).md5_text()+".atex"); + apath = p_path.get_base_dir().plus_file(spath.get_basename()+"."+from->get_source_path(E->get()).md5_text()+".atex"); } else { - apath = p_path.get_base_dir().plus_file(spath.basename()+".atex"); + apath = p_path.get_base_dir().plus_file(spath.get_basename()+".atex"); } Ref<AtlasTexture> at; @@ -1378,7 +1379,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc if (p_external) { //used by exporter - Array rects(true); + Array rects; for(int i=0;i<atlases.size();i++) { rects.push_back(atlases[i]->get_region()); rects.push_back(atlases[i]->get_margin()); @@ -1411,18 +1412,18 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc ERR_FAIL_COND_V(image.empty(),ERR_INVALID_DATA); bool has_alpha=image.detect_alpha(); - if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) { + if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) { - image.convert(Image::FORMAT_RGB); + image.convert(Image::FORMAT_RGB8); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { image.fix_alpha_edges(); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) { image.premultiply_alpha(); } @@ -1431,10 +1432,12 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc image.normalmap_to_xy(); } - //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { + /* + if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { - // image.srgb_to_linear(); - //} + image.srgb_to_linear(); + } + */ if (shrink>1) { @@ -1470,18 +1473,18 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc bool has_alpha=image.detect_alpha(); - if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) { + if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) { - image.convert(Image::FORMAT_RGB); + image.convert(Image::FORMAT_RGB8); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) { image.fix_alpha_edges(); } - if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) { + if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) { image.premultiply_alpha(); } @@ -1490,11 +1493,13 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc image.normalmap_to_xy(); } - //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { -// - // print_line("CONVERT BECAUSE: "+itos(flags)); - // image.srgb_to_linear(); - //} + /* + if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) { + + print_line("CONVERT BECAUSE: "+itos(flags)); + image.srgb_to_linear(); + } + */ int orig_w=image.get_width(); int orig_h=image.get_height(); @@ -1603,7 +1608,7 @@ Vector<uint8_t> EditorTextureImportPlugin::custom_export(const String& p_path, c rimd->set_option("shrink",group_shrink); rimd->add_source(validated_path,FileAccess::get_md5(p_path)); - } else if (EditorImportExport::get_singleton()->get_image_formats().has(p_path.extension().to_lower()) && EditorImportExport::get_singleton()->get_export_image_action()!=EditorImportExport::IMAGE_ACTION_NONE) { + } else if (EditorImportExport::get_singleton()->get_image_formats().has(p_path.get_extension().to_lower()) && EditorImportExport::get_singleton()->get_export_image_action()!=EditorImportExport::IMAGE_ACTION_NONE) { //handled by general image export settings rimd = Ref<ResourceImportMetadata>( memnew( ResourceImportMetadata ) ); @@ -1645,7 +1650,7 @@ Vector<uint8_t> EditorTextureImportPlugin::custom_export(const String& p_path, c uint8_t f4[4]; encode_uint32(flags,&f4[0]); MD5Init(&ctx); - String gp = Globals::get_singleton()->globalize_path(p_path); + String gp = GlobalConfig::get_singleton()->globalize_path(p_path); CharString cs = gp.utf8(); MD5Update(&ctx,(unsigned char*)cs.get_data(),cs.length()); MD5Update(&ctx,f4,4); @@ -1749,7 +1754,7 @@ void EditorTextureImportPlugin::import_from_drop(const Vector<String>& p_drop,co ImageLoader::get_recognized_extensions(&valid_extensions); for(int i=0;i<p_drop.size();i++) { - String extension=p_drop[i].extension().to_lower(); + String extension=p_drop[i].get_extension().to_lower(); for (List<String>::Element *E=valid_extensions.front();E;E=E->next()) { @@ -1857,21 +1862,21 @@ EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor) { if (pl.is_valid()) { Vector<uint8_t> ce = pl->custom_export(p_path,p_platform); if (ce.size()) { - p_path=p_path.basename()+".converted.tex"; + p_path=p_path.get_basename()+".converted.tex"; return ce; } } } else if (EditorImportExport::get_singleton()->get_export_image_action()!=EditorImportExport::IMAGE_ACTION_NONE){ - String xt = p_path.extension().to_lower(); + String xt = p_path.get_extension().to_lower(); if (EditorImportExport::get_singleton()->get_image_formats().has(xt)) { //should check for more I guess? Ref<EditorImportPlugin> pl = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture"); if (pl.is_valid()) { Vector<uint8_t> ce = pl->custom_export(p_path,p_platform); if (ce.size()) { - p_path=p_path.basename()+".converted.tex"; + p_path=p_path.get_basename()+".converted.tex"; return ce; } } diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.h b/tools/editor/io_plugins/editor_texture_import_plugin.h index 22c10a1a3a..b2117f1475 100644 --- a/tools/editor/io_plugins/editor_texture_import_plugin.h +++ b/tools/editor/io_plugins/editor_texture_import_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -49,7 +49,7 @@ class EditorTextureImportDialog; class EditorTextureImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorTextureImportPlugin,EditorImportPlugin); + GDCLASS(EditorTextureImportPlugin,EditorImportPlugin); public: @@ -119,7 +119,7 @@ public: class EditorTextureExportPlugin : public EditorExportPlugin { - OBJ_TYPE( EditorTextureExportPlugin, EditorExportPlugin); + GDCLASS( EditorTextureExportPlugin, EditorExportPlugin); public: @@ -130,7 +130,7 @@ public: class EditorImportTextureOptions : public VBoxContainer { - OBJ_TYPE( EditorImportTextureOptions, VBoxContainer ); + GDCLASS( EditorImportTextureOptions, VBoxContainer ); OptionButton *format; diff --git a/tools/editor/io_plugins/editor_translation_import_plugin.cpp b/tools/editor/io_plugins/editor_translation_import_plugin.cpp index 9ee3e98486..7079120feb 100644 --- a/tools/editor/io_plugins/editor_translation_import_plugin.cpp +++ b/tools/editor/io_plugins/editor_translation_import_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,11 +27,12 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_translation_import_plugin.h" + #include "scene/gui/file_dialog.h" #include "tools/editor/editor_dir_dialog.h" #include "tools/editor/editor_node.h" #include "tools/editor/property_editor.h" -#include "scene/resources/sample.h" +//#include "scene/resources/sample.h" #include "io/resource_saver.h" #include "os/file_access.h" #include "translation.h" @@ -41,7 +42,7 @@ class EditorTranslationImportDialog : public ConfirmationDialog { - OBJ_TYPE(EditorTranslationImportDialog,ConfirmationDialog); + GDCLASS(EditorTranslationImportDialog,ConfirmationDialog); EditorTranslationImportPlugin *plugin; @@ -255,7 +256,7 @@ public: imd->set_option("skip_first",ignore_first->is_pressed()); imd->set_option("compress",compress->is_pressed()); - String savefile = save_path->get_text().plus_file(import_path->get_text().get_file().basename()+"."+locale+".xl"); + String savefile = save_path->get_text().plus_file(import_path->get_text().get_file().get_basename()+"."+locale+".xl"); Error err = plugin->import(savefile,imd); if (err!=OK) { error_dialog->set_text(TTR("Couldn't import!")); @@ -282,12 +283,12 @@ public: static void _bind_methods() { - ObjectTypeDB::bind_method("_choose_file",&EditorTranslationImportDialog::_choose_file); - ObjectTypeDB::bind_method("_choose_save_dir",&EditorTranslationImportDialog::_choose_save_dir); - ObjectTypeDB::bind_method("_import",&EditorTranslationImportDialog::_import); - ObjectTypeDB::bind_method("_browse",&EditorTranslationImportDialog::_browse); - ObjectTypeDB::bind_method("_browse_target",&EditorTranslationImportDialog::_browse_target); - // ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); + ClassDB::bind_method("_choose_file",&EditorTranslationImportDialog::_choose_file); + ClassDB::bind_method("_choose_save_dir",&EditorTranslationImportDialog::_choose_save_dir); + ClassDB::bind_method("_import",&EditorTranslationImportDialog::_import); + ClassDB::bind_method("_browse",&EditorTranslationImportDialog::_browse); + ClassDB::bind_method("_browse_target",&EditorTranslationImportDialog::_browse_target); + //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) ); } EditorTranslationImportDialog(EditorTranslationImportPlugin *p_plugin) { @@ -299,7 +300,7 @@ public: VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); @@ -356,7 +357,7 @@ public: save_select = memnew( EditorDirDialog ); add_child(save_select); - // save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); + //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR); save_select->connect("dir_selected", this,"_choose_save_dir"); get_ok()->connect("pressed", this,"_import"); @@ -366,7 +367,7 @@ public: error_dialog = memnew ( ConfirmationDialog ); add_child(error_dialog); error_dialog->get_ok()->set_text(TTR("Accept")); - // error_dialog->get_cancel()->hide(); + //error_dialog->get_cancel()->hide(); set_hide_on_ok(false); @@ -400,7 +401,7 @@ void EditorTranslationImportPlugin::import_from_drop(const Vector<String>& p_dro for(int i=0;i<p_drop.size();i++) { - String ext = p_drop[i].extension().to_lower(); + String ext = p_drop[i].get_extension().to_lower(); if (ext=="csv") { diff --git a/tools/editor/io_plugins/editor_translation_import_plugin.h b/tools/editor/io_plugins/editor_translation_import_plugin.h index 532f2cedcc..38727bd778 100644 --- a/tools/editor/io_plugins/editor_translation_import_plugin.h +++ b/tools/editor/io_plugins/editor_translation_import_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ class EditorTranslationImportDialog; class EditorTranslationImportPlugin : public EditorImportPlugin { - OBJ_TYPE(EditorTranslationImportPlugin,EditorImportPlugin); + GDCLASS(EditorTranslationImportPlugin,EditorImportPlugin); EditorTranslationImportDialog *dialog; public: diff --git a/tools/editor/multi_node_edit.cpp b/tools/editor/multi_node_edit.cpp index e4ceaf4a8b..97a996fe48 100644 --- a/tools/editor/multi_node_edit.cpp +++ b/tools/editor/multi_node_edit.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "multi_node_edit.h" + #include "editor_node.h" bool MultiNodeEdit::_set(const StringName& p_name, const Variant& p_value){ diff --git a/tools/editor/multi_node_edit.h b/tools/editor/multi_node_edit.h index fd50dc5bf4..290c529d48 100644 --- a/tools/editor/multi_node_edit.h +++ b/tools/editor/multi_node_edit.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -33,7 +33,7 @@ class MultiNodeEdit : public Reference { - OBJ_TYPE(MultiNodeEdit,Reference); + GDCLASS(MultiNodeEdit,Reference); List<NodePath> nodes; struct PLData { diff --git a/tools/editor/node_dock.cpp b/tools/editor/node_dock.cpp index fb5a50e633..3d906cf960 100644 --- a/tools/editor/node_dock.cpp +++ b/tools/editor/node_dock.cpp @@ -1,4 +1,33 @@ +/*************************************************************************/ +/* node_dock.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "node_dock.h" + #include "editor_node.h" void NodeDock::show_groups() { @@ -20,8 +49,8 @@ void NodeDock::show_connections(){ void NodeDock::_bind_methods() { - ObjectTypeDB::bind_method(_MD("show_groups"),&NodeDock::show_groups); - ObjectTypeDB::bind_method(_MD("show_connections"),&NodeDock::show_connections); + ClassDB::bind_method(_MD("show_groups"),&NodeDock::show_groups); + ClassDB::bind_method(_MD("show_connections"),&NodeDock::show_connections); } void NodeDock::_notification(int p_what) { diff --git a/tools/editor/node_dock.h b/tools/editor/node_dock.h index 02312b90b5..df41ecf5bd 100644 --- a/tools/editor/node_dock.h +++ b/tools/editor/node_dock.h @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* node_dock.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef NODE_DOCK_H #define NODE_DOCK_H @@ -6,7 +34,7 @@ class NodeDock : public VBoxContainer { - OBJ_TYPE(NodeDock,VBoxContainer); + GDCLASS(NodeDock,VBoxContainer); ToolButton *connections_button; ToolButton *groups_button; diff --git a/tools/editor/output_strings.cpp b/tools/editor/output_strings.cpp index a6126466c4..cb43bb9230 100644 --- a/tools/editor/output_strings.cpp +++ b/tools/editor/output_strings.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -68,7 +68,7 @@ void OutputStrings::_notification(int p_what) { if (following) { updating=true; - v_scroll->set_val( v_scroll->get_max() - v_scroll->get_page() ); + v_scroll->set_value( v_scroll->get_max() - v_scroll->get_page() ); updating=false; } @@ -82,11 +82,11 @@ void OutputStrings::_notification(int p_what) { Ref<Texture> icon_error = get_icon("Error","EditorIcons"); Ref<Texture> icon_warning = get_icon("Warning","EditorIcons"); - // int lines = (size_height-(int)margin.y) / font_height; + //int lines = (size_height-(int)margin.y) / font_height; Point2 ofs=tree_st->get_offset(); - LineMap::Element *E = line_map.find(v_scroll->get_val()); - float h_ofs = (int)h_scroll->get_val(); + LineMap::Element *E = line_map.find(v_scroll->get_value()); + float h_ofs = (int)h_scroll->get_value(); Point2 icon_ofs=Point2(0,(font_height-(int)icon_error->get_height())/2); while( E && ofs.y < (size_height-(int)margin.y) ) { @@ -194,8 +194,8 @@ void OutputStrings::add_line(const String& p_text, const Variant& p_meta, const void OutputStrings::_bind_methods() { - ObjectTypeDB::bind_method("_vscroll_changed",&OutputStrings::_vscroll_changed); - ObjectTypeDB::bind_method("_hscroll_changed",&OutputStrings::_hscroll_changed); + ClassDB::bind_method("_vscroll_changed",&OutputStrings::_vscroll_changed); + ClassDB::bind_method("_hscroll_changed",&OutputStrings::_hscroll_changed); } OutputStrings::OutputStrings() { diff --git a/tools/editor/output_strings.h b/tools/editor/output_strings.h index 29c6ea799f..cc721ef652 100644 --- a/tools/editor/output_strings.h +++ b/tools/editor/output_strings.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -36,7 +36,7 @@ class OutputStrings : public Control { - OBJ_TYPE( OutputStrings, Control ); + GDCLASS( OutputStrings, Control ); public: enum LineType { diff --git a/tools/editor/pane_drag.cpp b/tools/editor/pane_drag.cpp index 8e8c2941ec..122abd37b9 100644 --- a/tools/editor/pane_drag.cpp +++ b/tools/editor/pane_drag.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,7 +29,7 @@ #include "pane_drag.h" -void PaneDrag::_input_event(const InputEvent& p_input) { +void PaneDrag::_gui_input(const InputEvent& p_input) { if (p_input.type==InputEvent::MOUSE_MOTION && p_input.mouse_motion.button_mask&BUTTON_MASK_LEFT) { @@ -64,7 +64,7 @@ Size2 PaneDrag::get_minimum_size() const { void PaneDrag::_bind_methods() { - ObjectTypeDB::bind_method("_input_event",&PaneDrag::_input_event); + ClassDB::bind_method("_gui_input",&PaneDrag::_gui_input); ADD_SIGNAL(MethodInfo("dragged",PropertyInfo(Variant::VECTOR2,"amount"))); } diff --git a/tools/editor/pane_drag.h b/tools/editor/pane_drag.h index 24f2ef7ed8..8796fc2594 100644 --- a/tools/editor/pane_drag.h +++ b/tools/editor/pane_drag.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -33,14 +33,14 @@ class PaneDrag : public Control { - OBJ_TYPE( PaneDrag, Control ); + GDCLASS( PaneDrag, Control ); bool mouse_over; protected: - void _input_event(const InputEvent& p_input); + void _gui_input(const InputEvent& p_input); void _notification(int p_what); virtual Size2 get_minimum_size() const; static void _bind_methods(); diff --git a/tools/editor/plugins/SCsub b/tools/editor/plugins/SCsub index 6299fd416c..4bf55189cc 100644 --- a/tools/editor/plugins/SCsub +++ b/tools/editor/plugins/SCsub @@ -2,4 +2,4 @@ Import('env') Export('env') -env.add_source_files(env.tool_sources,"*.cpp") +env.add_source_files(env.tool_sources, "*.cpp") diff --git a/tools/editor/plugins/animation_player_editor_plugin.cpp b/tools/editor/plugins/animation_player_editor_plugin.cpp index d6d452dd72..b3d16bb660 100644 --- a/tools/editor/plugins/animation_player_editor_plugin.cpp +++ b/tools/editor/plugins/animation_player_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "animation_player_editor_plugin.h" + #include "globals.h" #include "io/resource_loader.h" #include "io/resource_saver.h" @@ -50,7 +51,7 @@ void AnimationPlayerEditor::_node_removed(Node *p_node) { } } -void AnimationPlayerEditor::_input_event(InputEvent p_event) { +void AnimationPlayerEditor::_gui_input(InputEvent p_event) { } @@ -77,14 +78,14 @@ void AnimationPlayerEditor::_notification(int p_what) { } } } - frame->set_val(player->get_current_animation_pos()); + frame->set_value(player->get_current_animation_pos()); key_editor->set_anim_pos(player->get_current_animation_pos()); EditorNode::get_singleton()->get_property_editor()->refresh(); } else if (last_active) { //need the last frame after it stopped - frame->set_val(player->get_current_animation_pos()); + frame->set_value(player->get_current_animation_pos()); } last_active=player->is_playing(); @@ -94,14 +95,14 @@ void AnimationPlayerEditor::_notification(int p_what) { if (p_what==NOTIFICATION_ENTER_TREE) { -// editor->connect("hide_animation_player_editors",this,"_hide_anim_editors"); + //editor->connect("hide_animation_player_editors",this,"_hide_anim_editors"); add_anim->set_icon( get_icon("New","EditorIcons") ); rename_anim->set_icon( get_icon("Rename","EditorIcons") ); duplicate_anim->set_icon( get_icon("Duplicate","EditorIcons") ); autoplay->set_icon( get_icon("AutoPlay","EditorIcons") ); load_anim->set_icon( get_icon("Folder","EditorIcons") ); save_anim->set_icon(get_icon("Save", "EditorIcons")); - save_anim->get_popup()->connect("item_pressed", this, "_animation_save_menu"); + save_anim->get_popup()->connect("id_pressed", this, "_animation_save_menu"); remove_anim->set_icon( get_icon("Remove","EditorIcons") ); blend_anim->set_icon( get_icon("Blend","EditorIcons") ); @@ -115,7 +116,7 @@ void AnimationPlayerEditor::_notification(int p_what) { resource_edit_anim->set_icon( get_icon("EditResource","EditorIcons") ); pin->set_icon(get_icon("Pin","EditorIcons") ); tool_anim->set_icon(get_icon("Tools","EditorIcons")); - tool_anim->get_popup()->connect("item_pressed",this,"_animation_tool_menu"); + tool_anim->get_popup()->connect("id_pressed",this,"_animation_tool_menu"); blend_editor.next->connect("item_selected", this, "_blend_editor_next_changed"); @@ -375,12 +376,14 @@ void AnimationPlayerEditor::_animation_load() { void AnimationPlayerEditor::_animation_save_in_path(const Ref<Resource>& p_resource, const String& p_path) { int flg = 0; - if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources")) + if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources")) flg |= ResourceSaver::FLAG_COMPRESS; - //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative")) - // flg |= ResourceSaver::FLAG_RELATIVE_PATHS; + /* + if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative")) + flg |= ResourceSaver::FLAG_RELATIVE_PATHS; + */ - String path = Globals::get_singleton()->localize_path(p_path); + String path = GlobalConfig::get_singleton()->localize_path(p_path); Error err = ResourceSaver::save(path, p_resource, flg | ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS); if (err != OK) { @@ -388,7 +391,7 @@ void AnimationPlayerEditor::_animation_save_in_path(const Ref<Resource>& p_resou accept->popup_centered_minsize(); return; } - // EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type()); + //EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type()); ((Resource*)p_resource.ptr())->set_path(path); editor->emit_signal("resource_saved", p_resource); @@ -421,7 +424,7 @@ void AnimationPlayerEditor::_animation_save_as(const Ref<Resource>& p_resource) if (p_resource->get_path() != "") { file->set_current_path(p_resource->get_path()); if (extensions.size()) { - String ext = p_resource->get_path().extension().to_lower(); + String ext = p_resource->get_path().get_extension().to_lower(); if (extensions.find(ext) == NULL) { file->set_current_path(p_resource->get_path().replacen("." + ext, "." + extensions.front()->get())); } @@ -431,7 +434,12 @@ void AnimationPlayerEditor::_animation_save_as(const Ref<Resource>& p_resource) String existing; if (extensions.size()) { - existing = "new_" + p_resource->get_type().to_lower() + "." + extensions.front()->get().to_lower(); + if( p_resource->get_name() != "" ) { + existing = p_resource->get_name() + "." + extensions.front()->get().to_lower(); + } + else { + existing = "new_" + p_resource->get_class().to_lower() + "." + extensions.front()->get().to_lower(); + } } file->set_current_path(existing); @@ -648,8 +656,8 @@ Dictionary AnimationPlayerEditor::get_state() const { Dictionary d; - d["visible"]=is_visible(); - if (EditorNode::get_singleton()->get_edited_scene() && is_visible() && player) { + d["visible"]=is_visible_in_tree(); + if (EditorNode::get_singleton()->get_edited_scene() && is_visible_in_tree() && player) { d["player"]=EditorNode::get_singleton()->get_edited_scene()->get_path_to(player); d["animation"]=player->get_current_animation(); @@ -672,7 +680,7 @@ void AnimationPlayerEditor::set_state(const Dictionary& p_state) { show(); set_process(true); ensure_visibility(); -// EditorNode::get_singleton()->animation_panel_make_visible(true); + //EditorNode::get_singleton()->animation_panel_make_visible(true); if (p_state.has("animation")) { String anim = p_state["animation"]; @@ -723,7 +731,7 @@ void AnimationPlayerEditor::_dialog_action(String p_file) { Ref<Resource> res = ResourceLoader::load(p_file, "Animation"); ERR_FAIL_COND(res.is_null()); - ERR_FAIL_COND(!res->is_type("Animation")); + ERR_FAIL_COND(!res->is_class("Animation")); if (p_file.find_last("/") != -1) { p_file = p_file.substr(p_file.find_last("/") + 1, p_file.length()); @@ -768,7 +776,7 @@ void AnimationPlayerEditor::_dialog_action(String p_file) { void AnimationPlayerEditor::_scale_changed(const String& p_scale) { - player->set_speed(p_scale.to_double()); + player->set_speed_scale(p_scale.to_double()); } void AnimationPlayerEditor::_update_animation() { @@ -790,7 +798,7 @@ void AnimationPlayerEditor::_update_animation() { stop->set_pressed(true); } - scale->set_text( String::num(player->get_speed(),2) ); + scale->set_text( String::num(player->get_speed_scale(),2) ); String current=player->get_current_animation(); for (int i=0;i<animation->get_item_count();i++) { @@ -897,7 +905,7 @@ void AnimationPlayerEditor::edit(AnimationPlayer *p_player) { } else { key_editor->show_select_node_warning(true); -// hide(); + //hide(); } @@ -999,10 +1007,10 @@ void AnimationPlayerEditor::_seek_value_changed(float p_value,bool p_set) { void AnimationPlayerEditor::_animation_player_changed(Object *p_pl) { - if (player==p_pl && is_visible()) { + if (player==p_pl && is_visible_in_tree()) { _update_player(); - if (blend_editor.dialog->is_visible()) + if (blend_editor.dialog->is_visible_in_tree()) _animation_blend(); //update } } @@ -1011,7 +1019,7 @@ void AnimationPlayerEditor::_animation_player_changed(Object *p_pl) { void AnimationPlayerEditor::_list_changed() { - if(is_visible()) + if(is_visible_in_tree()) _update_player(); } #if 0 @@ -1099,7 +1107,7 @@ void AnimationPlayerEditor::_animation_key_editor_anim_step_changed(float p_len) void AnimationPlayerEditor::_animation_key_editor_seek(float p_pos,bool p_drag) { - if (!is_visible()) + if (!is_visible_in_tree()) return; if (!player) return; @@ -1108,7 +1116,7 @@ void AnimationPlayerEditor::_animation_key_editor_seek(float p_pos,bool p_drag) return; updating=true; - frame->set_val(p_pos); + frame->set_value(p_pos); updating=false; _seek_value_changed(p_pos,!p_drag); @@ -1128,7 +1136,7 @@ void AnimationPlayerEditor::_hide_anim_editors() { key_editor->set_animation(Ref<Animation>()); key_editor->set_root(NULL); key_editor->show_select_node_warning(true); -// editor->animation_editor_make_visible(false); + //editor->animation_editor_make_visible(false); } @@ -1220,7 +1228,7 @@ void AnimationPlayerEditor::_animation_save_menu(int p_option) { void AnimationPlayerEditor::_unhandled_key_input(const InputEvent& p_ev) { - if (is_visible() && p_ev.type==InputEvent::KEY && p_ev.key.pressed && !p_ev.key.echo && !p_ev.key.mod.alt && !p_ev.key.mod.control && !p_ev.key.mod.meta) { + if (is_visible_in_tree() && p_ev.type==InputEvent::KEY && p_ev.key.pressed && !p_ev.key.echo && !p_ev.key.mod.alt && !p_ev.key.mod.control && !p_ev.key.mod.meta) { switch(p_ev.key.scancode) { @@ -1245,42 +1253,42 @@ void AnimationPlayerEditor::_unhandled_key_input(const InputEvent& p_ev) { void AnimationPlayerEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&AnimationPlayerEditor::_input_event); - ObjectTypeDB::bind_method(_MD("_node_removed"),&AnimationPlayerEditor::_node_removed); - ObjectTypeDB::bind_method(_MD("_play_pressed"),&AnimationPlayerEditor::_play_pressed); - ObjectTypeDB::bind_method(_MD("_play_from_pressed"),&AnimationPlayerEditor::_play_from_pressed); - ObjectTypeDB::bind_method(_MD("_play_bw_pressed"),&AnimationPlayerEditor::_play_bw_pressed); - ObjectTypeDB::bind_method(_MD("_play_bw_from_pressed"),&AnimationPlayerEditor::_play_bw_from_pressed); - ObjectTypeDB::bind_method(_MD("_stop_pressed"),&AnimationPlayerEditor::_stop_pressed); - ObjectTypeDB::bind_method(_MD("_autoplay_pressed"),&AnimationPlayerEditor::_autoplay_pressed); - ObjectTypeDB::bind_method(_MD("_pause_pressed"),&AnimationPlayerEditor::_pause_pressed); - ObjectTypeDB::bind_method(_MD("_animation_selected"),&AnimationPlayerEditor::_animation_selected); - ObjectTypeDB::bind_method(_MD("_animation_name_edited"),&AnimationPlayerEditor::_animation_name_edited); - ObjectTypeDB::bind_method(_MD("_animation_new"),&AnimationPlayerEditor::_animation_new); - ObjectTypeDB::bind_method(_MD("_animation_rename"),&AnimationPlayerEditor::_animation_rename); - ObjectTypeDB::bind_method(_MD("_animation_load"),&AnimationPlayerEditor::_animation_load); - ObjectTypeDB::bind_method(_MD("_animation_remove"),&AnimationPlayerEditor::_animation_remove); - ObjectTypeDB::bind_method(_MD("_animation_blend"),&AnimationPlayerEditor::_animation_blend); - ObjectTypeDB::bind_method(_MD("_animation_edit"),&AnimationPlayerEditor::_animation_edit); - ObjectTypeDB::bind_method(_MD("_animation_resource_edit"),&AnimationPlayerEditor::_animation_resource_edit); - ObjectTypeDB::bind_method(_MD("_dialog_action"),&AnimationPlayerEditor::_dialog_action); - ObjectTypeDB::bind_method(_MD("_seek_value_changed"),&AnimationPlayerEditor::_seek_value_changed,DEFVAL(true)); - ObjectTypeDB::bind_method(_MD("_animation_player_changed"),&AnimationPlayerEditor::_animation_player_changed); - ObjectTypeDB::bind_method(_MD("_blend_edited"),&AnimationPlayerEditor::_blend_edited); -// ObjectTypeDB::bind_method(_MD("_seek_frame_changed"),&AnimationPlayerEditor::_seek_frame_changed); - ObjectTypeDB::bind_method(_MD("_scale_changed"),&AnimationPlayerEditor::_scale_changed); - //ObjectTypeDB::bind_method(_MD("_editor_store_all"),&AnimationPlayerEditor::_editor_store_all); + ClassDB::bind_method(_MD("_gui_input"),&AnimationPlayerEditor::_gui_input); + ClassDB::bind_method(_MD("_node_removed"),&AnimationPlayerEditor::_node_removed); + ClassDB::bind_method(_MD("_play_pressed"),&AnimationPlayerEditor::_play_pressed); + ClassDB::bind_method(_MD("_play_from_pressed"),&AnimationPlayerEditor::_play_from_pressed); + ClassDB::bind_method(_MD("_play_bw_pressed"),&AnimationPlayerEditor::_play_bw_pressed); + ClassDB::bind_method(_MD("_play_bw_from_pressed"),&AnimationPlayerEditor::_play_bw_from_pressed); + ClassDB::bind_method(_MD("_stop_pressed"),&AnimationPlayerEditor::_stop_pressed); + ClassDB::bind_method(_MD("_autoplay_pressed"),&AnimationPlayerEditor::_autoplay_pressed); + ClassDB::bind_method(_MD("_pause_pressed"),&AnimationPlayerEditor::_pause_pressed); + ClassDB::bind_method(_MD("_animation_selected"),&AnimationPlayerEditor::_animation_selected); + ClassDB::bind_method(_MD("_animation_name_edited"),&AnimationPlayerEditor::_animation_name_edited); + ClassDB::bind_method(_MD("_animation_new"),&AnimationPlayerEditor::_animation_new); + ClassDB::bind_method(_MD("_animation_rename"),&AnimationPlayerEditor::_animation_rename); + ClassDB::bind_method(_MD("_animation_load"),&AnimationPlayerEditor::_animation_load); + ClassDB::bind_method(_MD("_animation_remove"),&AnimationPlayerEditor::_animation_remove); + ClassDB::bind_method(_MD("_animation_blend"),&AnimationPlayerEditor::_animation_blend); + ClassDB::bind_method(_MD("_animation_edit"),&AnimationPlayerEditor::_animation_edit); + ClassDB::bind_method(_MD("_animation_resource_edit"),&AnimationPlayerEditor::_animation_resource_edit); + ClassDB::bind_method(_MD("_dialog_action"),&AnimationPlayerEditor::_dialog_action); + ClassDB::bind_method(_MD("_seek_value_changed"),&AnimationPlayerEditor::_seek_value_changed,DEFVAL(true)); + ClassDB::bind_method(_MD("_animation_player_changed"),&AnimationPlayerEditor::_animation_player_changed); + ClassDB::bind_method(_MD("_blend_edited"),&AnimationPlayerEditor::_blend_edited); + //ClassDB::bind_method(_MD("_seek_frame_changed"),&AnimationPlayerEditor::_seek_frame_changed); + ClassDB::bind_method(_MD("_scale_changed"),&AnimationPlayerEditor::_scale_changed); + //ClassDB::bind_method(_MD("_editor_store_all"),&AnimationPlayerEditor::_editor_store_all); ///jectTypeDB::bind_method(_MD("_editor_load_all"),&AnimationPlayerEditor::_editor_load_all); - ObjectTypeDB::bind_method(_MD("_list_changed"),&AnimationPlayerEditor::_list_changed); - ObjectTypeDB::bind_method(_MD("_animation_key_editor_seek"),&AnimationPlayerEditor::_animation_key_editor_seek); - ObjectTypeDB::bind_method(_MD("_animation_key_editor_anim_len_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_len_changed); - ObjectTypeDB::bind_method(_MD("_animation_key_editor_anim_step_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_step_changed); - ObjectTypeDB::bind_method(_MD("_hide_anim_editors"),&AnimationPlayerEditor::_hide_anim_editors); - ObjectTypeDB::bind_method(_MD("_animation_duplicate"),&AnimationPlayerEditor::_animation_duplicate); - ObjectTypeDB::bind_method(_MD("_blend_editor_next_changed"),&AnimationPlayerEditor::_blend_editor_next_changed); - ObjectTypeDB::bind_method(_MD("_unhandled_key_input"),&AnimationPlayerEditor::_unhandled_key_input); - ObjectTypeDB::bind_method(_MD("_animation_tool_menu"),&AnimationPlayerEditor::_animation_tool_menu); - ObjectTypeDB::bind_method(_MD("_animation_save_menu"), &AnimationPlayerEditor::_animation_save_menu); + ClassDB::bind_method(_MD("_list_changed"),&AnimationPlayerEditor::_list_changed); + ClassDB::bind_method(_MD("_animation_key_editor_seek"),&AnimationPlayerEditor::_animation_key_editor_seek); + ClassDB::bind_method(_MD("_animation_key_editor_anim_len_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_len_changed); + ClassDB::bind_method(_MD("_animation_key_editor_anim_step_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_step_changed); + ClassDB::bind_method(_MD("_hide_anim_editors"),&AnimationPlayerEditor::_hide_anim_editors); + ClassDB::bind_method(_MD("_animation_duplicate"),&AnimationPlayerEditor::_animation_duplicate); + ClassDB::bind_method(_MD("_blend_editor_next_changed"),&AnimationPlayerEditor::_blend_editor_next_changed); + ClassDB::bind_method(_MD("_unhandled_key_input"),&AnimationPlayerEditor::_unhandled_key_input); + ClassDB::bind_method(_MD("_animation_tool_menu"),&AnimationPlayerEditor::_animation_tool_menu); + ClassDB::bind_method(_MD("_animation_save_menu"), &AnimationPlayerEditor::_animation_save_menu); @@ -1477,7 +1485,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) { blend_editor.dialog->set_hide_on_ok(true); VBoxContainer *blend_vb = memnew( VBoxContainer); blend_editor.dialog->add_child(blend_vb); - blend_editor.dialog->set_child_rect(blend_vb); + //blend_editor.dialog->set_child_rect(blend_vb); blend_editor.tree = memnew( Tree ); blend_editor.tree->set_columns(2); blend_vb->add_margin_child(TTR("Blend Times:"),blend_editor.tree,true); @@ -1542,7 +1550,7 @@ void AnimationPlayerEditorPlugin::edit(Object *p_object) { bool AnimationPlayerEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("AnimationPlayer"); + return p_object->is_class("AnimationPlayer"); } void AnimationPlayerEditorPlugin::make_visible(bool p_visible) { @@ -1552,11 +1560,11 @@ void AnimationPlayerEditorPlugin::make_visible(bool p_visible) { editor->make_bottom_panel_item_visible(anim_editor); anim_editor->set_process(true); anim_editor->ensure_visibility(); -// editor->animation_panel_make_visible(true); + //editor->animation_panel_make_visible(true); } else { -// anim_editor->hide(); -// anim_editor->set_idle_process(false); + //anim_editor->hide(); + //anim_editor->set_idle_process(false); } } diff --git a/tools/editor/plugins/animation_player_editor_plugin.h b/tools/editor/plugins/animation_player_editor_plugin.h index b0c930b66e..840c39ba49 100644 --- a/tools/editor/plugins/animation_player_editor_plugin.h +++ b/tools/editor/plugins/animation_player_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -44,7 +44,7 @@ class AnimationKeyEditor; class AnimationPlayerEditor : public VBoxContainer { - OBJ_TYPE(AnimationPlayerEditor, VBoxContainer ); + GDCLASS(AnimationPlayerEditor, VBoxContainer ); EditorNode *editor; AnimationPlayer *player; @@ -73,7 +73,7 @@ class AnimationPlayerEditor : public VBoxContainer { Button *play_bw; Button *play_bw_from; -// Button *pause; + //Button *pause; Button *add_anim; Button *autoplay; Button *rename_anim; @@ -171,7 +171,7 @@ class AnimationPlayerEditor : public VBoxContainer { protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); void _node_removed(Node *p_node); static void _bind_methods(); public: @@ -193,7 +193,7 @@ public: class AnimationPlayerEditorPlugin : public EditorPlugin { - OBJ_TYPE( AnimationPlayerEditorPlugin, EditorPlugin ); + GDCLASS( AnimationPlayerEditorPlugin, EditorPlugin ); AnimationPlayerEditor *anim_editor; EditorNode *editor; diff --git a/tools/editor/plugins/animation_tree_editor_plugin.cpp b/tools/editor/plugins/animation_tree_editor_plugin.cpp index 24914e4bc5..1ed52d2df6 100644 --- a/tools/editor/plugins/animation_tree_editor_plugin.cpp +++ b/tools/editor/plugins/animation_tree_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -183,20 +183,20 @@ void AnimationTreeEditor::_edit_dialog_changed() { case AnimationTreePlayer::NODE_MIX: - anim_tree->mix_node_set_amount(edited_node,edit_scroll[0]->get_val()); + anim_tree->mix_node_set_amount(edited_node,edit_scroll[0]->get_value()); break; case AnimationTreePlayer::NODE_BLEND2: - anim_tree->blend2_node_set_amount(edited_node,edit_scroll[0]->get_val()); + anim_tree->blend2_node_set_amount(edited_node,edit_scroll[0]->get_value()); break; case AnimationTreePlayer::NODE_BLEND3: - anim_tree->blend3_node_set_amount(edited_node,edit_scroll[0]->get_val()); + anim_tree->blend3_node_set_amount(edited_node,edit_scroll[0]->get_value()); break; case AnimationTreePlayer::NODE_BLEND4: - anim_tree->blend4_node_set_amount(edited_node,Point2(edit_scroll[0]->get_val(),edit_scroll[1]->get_val())); + anim_tree->blend4_node_set_amount(edited_node,Point2(edit_scroll[0]->get_value(),edit_scroll[1]->get_value())); break; @@ -261,11 +261,11 @@ void AnimationTreeEditor::_popup_edit_dialog() { } edit_option->hide(); - edit_button->hide();; + edit_button->hide(); filter_button->hide(); - edit_check->hide();; + edit_check->hide(); - Point2 pos = anim_tree->node_get_pos(edited_node)-Point2(h_scroll->get_val(),v_scroll->get_val()); + Point2 pos = anim_tree->node_get_pos(edited_node)-Point2(h_scroll->get_value(),v_scroll->get_value()); Ref<StyleBox> style = get_stylebox("panel","PopupMenu"); Size2 size = get_node_size(edited_node); Point2 popup_pos( pos.x+style->get_margin(MARGIN_LEFT), pos.y+size.y-style->get_margin(MARGIN_BOTTOM)); @@ -380,7 +380,7 @@ void AnimationTreeEditor::_popup_edit_dialog() { edit_label[0]->show(); edit_scroll[0]->set_min(0); edit_scroll[0]->set_max(1); - edit_scroll[0]->set_val(anim_tree->mix_node_get_amount(edited_node)); + edit_scroll[0]->set_value(anim_tree->mix_node_get_amount(edited_node)); edit_scroll[0]->set_begin(Point2(15,25)); edit_scroll[0]->show(); edit_dialog->set_size(Size2(150,50)); @@ -392,7 +392,7 @@ void AnimationTreeEditor::_popup_edit_dialog() { edit_label[0]->show(); edit_scroll[0]->set_min(0); edit_scroll[0]->set_max(1); - edit_scroll[0]->set_val(anim_tree->blend2_node_get_amount(edited_node)); + edit_scroll[0]->set_value(anim_tree->blend2_node_get_amount(edited_node)); edit_scroll[0]->set_begin(Point2(15,25)); edit_scroll[0]->show(); filter_button->set_begin(Point2(10,47)); @@ -407,7 +407,7 @@ void AnimationTreeEditor::_popup_edit_dialog() { edit_label[0]->show(); edit_scroll[0]->set_min(-1); edit_scroll[0]->set_max(1); - edit_scroll[0]->set_val(anim_tree->blend3_node_get_amount(edited_node)); + edit_scroll[0]->set_value(anim_tree->blend3_node_get_amount(edited_node)); edit_scroll[0]->set_begin(Point2(15,25)); edit_scroll[0]->show(); edit_dialog->set_size(Size2(150,50)); @@ -420,7 +420,7 @@ void AnimationTreeEditor::_popup_edit_dialog() { edit_label[0]->show(); edit_scroll[0]->set_min(0); edit_scroll[0]->set_max(1); - edit_scroll[0]->set_val(anim_tree->blend4_node_get_amount(edited_node).x); + edit_scroll[0]->set_value(anim_tree->blend4_node_get_amount(edited_node).x); edit_scroll[0]->set_begin(Point2(15,25)); edit_scroll[0]->show(); edit_label[1]->set_text(TTR("Blend 1:")); @@ -428,7 +428,7 @@ void AnimationTreeEditor::_popup_edit_dialog() { edit_label[1]->show(); edit_scroll[1]->set_min(0); edit_scroll[1]->set_max(1); - edit_scroll[1]->set_val(anim_tree->blend4_node_get_amount(edited_node).y); + edit_scroll[1]->set_value(anim_tree->blend4_node_get_amount(edited_node).y); edit_scroll[1]->set_begin(Point2(15,75)); edit_scroll[1]->show(); edit_dialog->set_size(Size2(150,100)); @@ -450,7 +450,7 @@ void AnimationTreeEditor::_popup_edit_dialog() { edit_label[1]->show(); edit_option->set_begin(Point2(15,75)); - edit_option->clear();; + edit_option->clear(); for(int i=0;i<anim_tree->transition_node_get_input_count(edited_node);i++) { edit_option->add_item(itos(i),i); @@ -500,7 +500,7 @@ void AnimationTreeEditor::_draw_node(const StringName& p_node) { } - pos-=Point2(h_scroll->get_val(),v_scroll->get_val()); + pos-=Point2(h_scroll->get_value(),v_scroll->get_value()); style->draw(ci,Rect2(pos,size)); @@ -621,9 +621,9 @@ void AnimationTreeEditor::_draw_node(const StringName& p_node) { #if 0 void AnimationTreeEditor::_node_param_changed() { -// anim_tree->node_set_param( click_node,property_editor->get_variant() ); -// update(); -// _write_anim_tree_graph(); + //anim_tree->node_set_param( click_node,property_editor->get_variant() ); + //update(); + //_write_anim_tree_graph(); } #endif @@ -644,7 +644,7 @@ AnimationTreeEditor::ClickType AnimationTreeEditor::_locate_click(const Point2& Point2 pos = anim_tree->node_get_pos(node); Size2 size = get_node_size(node); - pos-=Point2(h_scroll->get_val(),v_scroll->get_val()); + pos-=Point2(h_scroll->get_value(),v_scroll->get_value()); if (!Rect2(pos,size).has_point(p_click)) continue; @@ -709,7 +709,7 @@ Point2 AnimationTreeEditor::_get_slot_pos(const StringName& p_node,bool p_input, } - pos-=Point2(h_scroll->get_val(),v_scroll->get_val()); + pos-=Point2(h_scroll->get_value(),v_scroll->get_value()); float w = size.width-style->get_minimum_size().width; @@ -759,7 +759,7 @@ void AnimationTreeEditor::_node_edit_property(const StringName& p_node) { } #endif -void AnimationTreeEditor::_input_event(InputEvent p_event) { +void AnimationTreeEditor::_gui_input(InputEvent p_event) { switch(p_event.type) { @@ -792,7 +792,7 @@ void AnimationTreeEditor::_input_event(InputEvent p_event) { renaming_edit=false; _popup_edit_dialog(); //open editor - // _node_edit_property(click_node); + //_node_edit_property(click_node); } break; default:{} } @@ -856,12 +856,12 @@ void AnimationTreeEditor::_input_event(InputEvent p_event) { if (dst_click_type==CLICK_INPUT_SLOT && click_type==CLICK_OUTPUT_SLOT) { - anim_tree->connect(click_node,id,slot); + anim_tree->connect_nodes(click_node,id,slot); } if (click_type==CLICK_INPUT_SLOT && dst_click_type==CLICK_OUTPUT_SLOT) { - anim_tree->connect(id,click_node,click_slot); + anim_tree->connect_nodes(id,click_node,click_slot); } } break; @@ -892,8 +892,8 @@ void AnimationTreeEditor::_input_event(InputEvent p_event) { } if ((p_event.mouse_motion.button_mask&4 || Input::get_singleton()->is_key_pressed(KEY_SPACE))) { - h_scroll->set_val( h_scroll->get_val() - p_event.mouse_motion.relative_x ); - v_scroll->set_val( v_scroll->get_val() - p_event.mouse_motion.relative_y ); + h_scroll->set_value( h_scroll->get_value() - p_event.mouse_motion.relative_x ); + v_scroll->set_value( v_scroll->get_value() - p_event.mouse_motion.relative_y ); update(); } @@ -947,7 +947,6 @@ void AnimationTreeEditor::_notification(int p_what) { _update_scrollbars(); //VisualServer::get_singleton()->canvas_item_add_rect(get_canvas_item(),Rect2(Point2(),get_size()),Color(0,0,0,1)); get_stylebox("bg","Tree")->draw(get_canvas_item(),Rect2(Point2(),get_size())); - VisualServer::get_singleton()->canvas_item_set_clip(get_canvas_item(),true); for(List<StringName>::Element *E=order.front();E;E=E->next()) { @@ -1026,7 +1025,7 @@ void AnimationTreeEditor::_update_scrollbars() { v_scroll->show(); v_scroll->set_max(min.height); v_scroll->set_page(size.height - hmin.height); - offset.y=v_scroll->get_val(); + offset.y=v_scroll->get_value(); } if (min.width < size.width - vmin.width) { @@ -1038,14 +1037,14 @@ void AnimationTreeEditor::_update_scrollbars() { h_scroll->show(); h_scroll->set_max(min.width); h_scroll->set_page(size.width - vmin.width); - offset.x=h_scroll->get_val(); + offset.x=h_scroll->get_value(); } } void AnimationTreeEditor::_scroll_moved(float) { - offset.x=h_scroll->get_val(); - offset.y=v_scroll->get_val(); + offset.x=h_scroll->get_value(); + offset.y=v_scroll->get_value(); update(); } @@ -1058,7 +1057,7 @@ void AnimationTreeEditor::_node_menu_item(int p_item) { if (rclick_type==CLICK_INPUT_SLOT) { - anim_tree->disconnect(rclick_node,rclick_slot); + anim_tree->disconnect_nodes(rclick_node,rclick_slot); update(); } @@ -1073,7 +1072,7 @@ void AnimationTreeEditor::_node_menu_item(int p_item) { const AnimationTreePlayer::Connection &c=E->get(); if( c.dst_node==rclick_node) { - anim_tree->disconnect(c.dst_node,c.dst_input); + anim_tree->disconnect_nodes(c.dst_node,c.dst_input); } } update(); @@ -1323,23 +1322,23 @@ void AnimationTreeEditor::_edit_filters() { void AnimationTreeEditor::_bind_methods() { - ObjectTypeDB::bind_method( "_add_menu_item", &AnimationTreeEditor::_add_menu_item ); - ObjectTypeDB::bind_method( "_node_menu_item", &AnimationTreeEditor::_node_menu_item ); - ObjectTypeDB::bind_method( "_input_event", &AnimationTreeEditor::_input_event ); -// ObjectTypeDB::bind_method( "_node_param_changed", &AnimationTreeEditor::_node_param_changed ); - ObjectTypeDB::bind_method( "_scroll_moved", &AnimationTreeEditor::_scroll_moved ); - ObjectTypeDB::bind_method( "_edit_dialog_changeds", &AnimationTreeEditor::_edit_dialog_changeds ); - ObjectTypeDB::bind_method( "_edit_dialog_changede", &AnimationTreeEditor::_edit_dialog_changede ); - ObjectTypeDB::bind_method( "_edit_dialog_changedf", &AnimationTreeEditor::_edit_dialog_changedf ); - ObjectTypeDB::bind_method( "_edit_dialog_changed", &AnimationTreeEditor::_edit_dialog_changed ); - ObjectTypeDB::bind_method( "_edit_dialog_animation_changed", &AnimationTreeEditor::_edit_dialog_animation_changed ); - ObjectTypeDB::bind_method( "_edit_dialog_edit_animation", &AnimationTreeEditor::_edit_dialog_edit_animation ); - ObjectTypeDB::bind_method( "_play_toggled", &AnimationTreeEditor::_play_toggled ); - ObjectTypeDB::bind_method( "_edit_oneshot_start", &AnimationTreeEditor::_edit_oneshot_start ); - ObjectTypeDB::bind_method( "_file_dialog_selected", &AnimationTreeEditor::_file_dialog_selected); - ObjectTypeDB::bind_method( "_master_anim_menu_item", &AnimationTreeEditor::_master_anim_menu_item); - ObjectTypeDB::bind_method( "_edit_filters", &AnimationTreeEditor::_edit_filters); - ObjectTypeDB::bind_method( "_filter_edited", &AnimationTreeEditor::_filter_edited); + ClassDB::bind_method( "_add_menu_item", &AnimationTreeEditor::_add_menu_item ); + ClassDB::bind_method( "_node_menu_item", &AnimationTreeEditor::_node_menu_item ); + ClassDB::bind_method( "_gui_input", &AnimationTreeEditor::_gui_input ); + //ClassDB::bind_method( "_node_param_changed", &AnimationTreeEditor::_node_param_changed ); + ClassDB::bind_method( "_scroll_moved", &AnimationTreeEditor::_scroll_moved ); + ClassDB::bind_method( "_edit_dialog_changeds", &AnimationTreeEditor::_edit_dialog_changeds ); + ClassDB::bind_method( "_edit_dialog_changede", &AnimationTreeEditor::_edit_dialog_changede ); + ClassDB::bind_method( "_edit_dialog_changedf", &AnimationTreeEditor::_edit_dialog_changedf ); + ClassDB::bind_method( "_edit_dialog_changed", &AnimationTreeEditor::_edit_dialog_changed ); + ClassDB::bind_method( "_edit_dialog_animation_changed", &AnimationTreeEditor::_edit_dialog_animation_changed ); + ClassDB::bind_method( "_edit_dialog_edit_animation", &AnimationTreeEditor::_edit_dialog_edit_animation ); + ClassDB::bind_method( "_play_toggled", &AnimationTreeEditor::_play_toggled ); + ClassDB::bind_method( "_edit_oneshot_start", &AnimationTreeEditor::_edit_oneshot_start ); + ClassDB::bind_method( "_file_dialog_selected", &AnimationTreeEditor::_file_dialog_selected); + ClassDB::bind_method( "_master_anim_menu_item", &AnimationTreeEditor::_master_anim_menu_item); + ClassDB::bind_method( "_edit_filters", &AnimationTreeEditor::_edit_filters); + ClassDB::bind_method( "_filter_edited", &AnimationTreeEditor::_filter_edited); } @@ -1371,7 +1370,7 @@ AnimationTreeEditor::AnimationTreeEditor() { p->add_separator(); p->add_item(TTR("Clear"),MENU_GRAPH_CLEAR); - p->connect("item_pressed", this,"_add_menu_item"); + p->connect("id_pressed", this,"_add_menu_item"); play_button = memnew(Button); play_button->set_pos(Point2(25,0)); @@ -1407,16 +1406,16 @@ AnimationTreeEditor::AnimationTreeEditor() { master_anim_popup = memnew( PopupMenu ); add_child(master_anim_popup); - master_anim_popup->connect("item_pressed",this,"_master_anim_menu_item"); + master_anim_popup->connect("id_pressed",this,"_master_anim_menu_item"); - node_popup->connect("item_pressed", this,"_node_menu_item"); + node_popup->connect("id_pressed", this,"_node_menu_item"); updating_edit=false; edit_dialog = memnew( PopupPanel ); -// edit_dialog->get_ok()->hide(); -// edit_dialog->get_cancel()->hide(); + //edit_dialog->get_ok()->hide(); + //edit_dialog->get_cancel()->hide(); add_child(edit_dialog); edit_option = memnew( OptionButton ); @@ -1452,19 +1451,19 @@ AnimationTreeEditor::AnimationTreeEditor() { edit_button->set_anchor( MARGIN_RIGHT, ANCHOR_END ); edit_button->set_margin(MARGIN_RIGHT, 10); edit_dialog->add_child(edit_button); - edit_button->hide();; + edit_button->hide(); edit_button->connect("pressed", this,"_edit_oneshot_start"); edit_check = memnew( CheckButton ); edit_check->set_anchor( MARGIN_RIGHT, ANCHOR_END ); edit_check->set_margin(MARGIN_RIGHT, 10); edit_dialog->add_child(edit_check); - edit_check->hide();; + edit_check->hide(); edit_check->connect("pressed", this,"_edit_dialog_changed"); file_dialog = memnew( EditorFileDialog ); file_dialog->set_enable_multiple_selection(true); - file_dialog->set_current_dir(Globals::get_singleton()->get_resource_path()); + file_dialog->set_current_dir(GlobalConfig::get_singleton()->get_resource_path()); add_child(file_dialog); file_dialog->connect("file_selected", this, "_file_dialog_selected"); @@ -1474,17 +1473,18 @@ AnimationTreeEditor::AnimationTreeEditor() { filter = memnew( Tree ); filter_dialog->add_child(filter); - filter_dialog->set_child_rect(filter); + //filter_dialog->set_child_rect(filter); filter->connect("item_edited",this,"_filter_edited"); filter_button = memnew( Button ); filter_button->set_anchor( MARGIN_RIGHT, ANCHOR_END ); filter_button->set_margin(MARGIN_RIGHT, 10); edit_dialog->add_child(filter_button); - filter_button->hide();; + filter_button->hide(); filter_button->set_text(TTR("Filters..")); filter_button->connect("pressed", this,"_edit_filters"); + set_clip_contents(true); } @@ -1496,20 +1496,20 @@ void AnimationTreeEditorPlugin::edit(Object *p_object) { bool AnimationTreeEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("AnimationTreePlayer"); + return p_object->is_class("AnimationTreePlayer"); } void AnimationTreeEditorPlugin::make_visible(bool p_visible) { if (p_visible) { -// editor->hide_animation_player_editors(); -// editor->animation_panel_make_visible(true); + //editor->hide_animation_player_editors(); + //editor->animation_panel_make_visible(true); button->show(); editor->make_bottom_panel_item_visible(anim_tree_editor); anim_tree_editor->set_fixed_process(true); } else { - if (anim_tree_editor->is_visible()) + if (anim_tree_editor->is_visible_in_tree()) editor->hide_bottom_panel(); button->hide(); anim_tree_editor->set_fixed_process(false); diff --git a/tools/editor/plugins/animation_tree_editor_plugin.h b/tools/editor/plugins/animation_tree_editor_plugin.h index 4884a22d90..253ad1878d 100644 --- a/tools/editor/plugins/animation_tree_editor_plugin.h +++ b/tools/editor/plugins/animation_tree_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -42,7 +42,7 @@ class AnimationTreeEditor : public Control { - OBJ_TYPE(AnimationTreeEditor, Control ); + GDCLASS(AnimationTreeEditor, Control ); static const char* _node_type_names[]; @@ -160,7 +160,7 @@ class AnimationTreeEditor : public Control { protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -172,7 +172,7 @@ public: class AnimationTreeEditorPlugin : public EditorPlugin { - OBJ_TYPE( AnimationTreeEditorPlugin, EditorPlugin ); + GDCLASS( AnimationTreeEditorPlugin, EditorPlugin ); AnimationTreeEditor *anim_tree_editor; EditorNode *editor; diff --git a/tools/editor/plugins/baked_light_baker.cpp b/tools/editor/plugins/baked_light_baker.cpp index f43bec1cd3..52220839d9 100644 --- a/tools/editor/plugins/baked_light_baker.cpp +++ b/tools/editor/plugins/baked_light_baker.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,13 +27,14 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "baked_light_baker.h" + #include <stdlib.h> #include <cmath> #include "io/marshalls.h" #include "tools/editor/editor_node.h" #include "tools/editor/editor_settings.h" - +#if 0 void baked_light_baker_add_64f(double *dst,double value); void baked_light_baker_add_64i(int64_t *dst,int64_t value); @@ -91,15 +92,15 @@ BakedLightBaker::MeshTexture* BakedLightBaker::_get_mat_tex(const Ref<Texture>& if (image.empty()) return NULL; - if (image.get_format()!=Image::FORMAT_RGBA) { + if (image.get_format()!=Image::FORMAT_RGBA8) { if (image.get_format()>Image::FORMAT_INDEXED_ALPHA) { Error err = image.decompress(); if (err) return NULL; } - if (image.get_format()!=Image::FORMAT_RGBA) - image.convert(Image::FORMAT_RGBA); + if (image.get_format()!=Image::FORMAT_RGBA8) + image.convert(Image::FORMAT_RGBA8); } if (imgtex->get_flags()&Texture::FLAG_CONVERT_TO_LINEAR) { @@ -108,8 +109,8 @@ BakedLightBaker::MeshTexture* BakedLightBaker::_get_mat_tex(const Ref<Texture>& image=copy; } - DVector<uint8_t> dvt=image.get_data(); - DVector<uint8_t>::Read r=dvt.read(); + PoolVector<uint8_t> dvt=image.get_data(); + PoolVector<uint8_t>::Read r=dvt.read(); MeshTexture mt; mt.tex_w=image.get_width(); mt.tex_h=image.get_height(); @@ -143,18 +144,18 @@ void BakedLightBaker::_add_mesh(const Ref<Mesh>& p_mesh,const Ref<Material>& p_m MeshMaterial mm; - Ref<FixedMaterial> fm = mat; + Ref<FixedSpatialMaterial> fm = mat; if (fm.is_valid()) { //fixed route - mm.diffuse.color=fm->get_parameter(FixedMaterial::PARAM_DIFFUSE); + mm.diffuse.color=fm->get_parameter(FixedSpatialMaterial::PARAM_DIFFUSE); if (linear_color) mm.diffuse.color=mm.diffuse.color.to_linear(); - mm.diffuse.tex=_get_mat_tex(fm->get_texture(FixedMaterial::PARAM_DIFFUSE)); - mm.specular.color=fm->get_parameter(FixedMaterial::PARAM_SPECULAR); + mm.diffuse.tex=_get_mat_tex(fm->get_texture(FixedSpatialMaterial::PARAM_DIFFUSE)); + mm.specular.color=fm->get_parameter(FixedSpatialMaterial::PARAM_SPECULAR); if (linear_color) mm.specular.color=mm.specular.color.to_linear(); - mm.specular.tex=_get_mat_tex(fm->get_texture(FixedMaterial::PARAM_SPECULAR)); + mm.specular.tex=_get_mat_tex(fm->get_texture(FixedSpatialMaterial::PARAM_SPECULAR)); } else { mm.diffuse.color=Color(1,1,1,1); @@ -194,14 +195,14 @@ void BakedLightBaker::_add_mesh(const Ref<Mesh>& p_mesh,const Ref<Material>& p_m Array a = p_mesh->surface_get_arrays(i); - DVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX]; - DVector<Vector3>::Read vr=vertices.read(); - DVector<Vector2> uv; - DVector<Vector2>::Read uvr; - DVector<Vector2> uv2; - DVector<Vector2>::Read uv2r; - DVector<Vector3> normal; - DVector<Vector3>::Read normalr; + PoolVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX]; + PoolVector<Vector3>::Read vr=vertices.read(); + PoolVector<Vector2> uv; + PoolVector<Vector2>::Read uvr; + PoolVector<Vector2> uv2; + PoolVector<Vector2>::Read uv2r; + PoolVector<Vector3> normal; + PoolVector<Vector3>::Read normalr; bool read_uv=false; bool read_normal=false; @@ -236,8 +237,8 @@ void BakedLightBaker::_add_mesh(const Ref<Mesh>& p_mesh,const Ref<Material>& p_m if (p_mesh->surface_get_format(i)&Mesh::ARRAY_FORMAT_INDEX) { - DVector<int> indices = a[Mesh::ARRAY_INDEX]; - DVector<int>::Read ir = indices.read(); + PoolVector<int> indices = a[Mesh::ARRAY_INDEX]; + PoolVector<int>::Read ir = indices.read(); for(int i=0;i<facecount;i++) { Triangle &t=triangles[tbase+i]; @@ -1006,8 +1007,10 @@ float BakedLightBaker::_throw_ray(ThreadStack& thread_stack,bool p_bake_direct,c Triangle *triangle=NULL; - //for(int i=0;i<max_depth;i++) - // stack[i]=0; + /* + for(int i=0;i<max_depth;i++) + stack[i]=0; + */ int level=0; //AABB ray_aabb; @@ -1059,7 +1062,7 @@ float BakedLightBaker::_throw_ray(ThreadStack& thread_stack,bool p_bake_direct,c bool valid = b.aabb.smits_intersect_ray(p_begin,n,0,len); //bool valid = b.aabb.intersects_segment(p_begin,p_end); - // bool valid = b.aabb.intersects(ray_aabb); + //bool valid = b.aabb.intersects(ray_aabb); if (!valid) { @@ -1234,7 +1237,7 @@ float BakedLightBaker::_throw_ray(ThreadStack& thread_stack,bool p_bake_direct,c } //specular later -// _plot_light_point(r_point,octree,octree_aabb,p_light); + //_plot_light_point(r_point,octree,octree_aabb,p_light); Color plot_light=res_light.linear_interpolate(diffuse_at_point,tint); @@ -1571,7 +1574,7 @@ double BakedLightBaker::get_normalization(int p_light_idx) const { double nrg=0; const LightData &dl=lights[p_light_idx]; - double cell_area = cell_size*cell_size;; + double cell_area = cell_size*cell_size; //nrg+= /*dl.energy */ (dl.rays_thrown * cell_area / dl.area); nrg=dl.rays_thrown * cell_area; nrg*=(Math_PI*plot_size*plot_size)*0.5; // damping of radial linear gradient kernel @@ -1589,7 +1592,7 @@ double BakedLightBaker::get_modifier(int p_light_idx) const { double nrg=0; const LightData &dl=lights[p_light_idx]; - double cell_area = cell_size*cell_size;; + double cell_area = cell_size*cell_size; //nrg+= /*dl.energy */ (dl.rays_thrown * cell_area / dl.area); nrg=cell_area; nrg*=(Math_PI*plot_size*plot_size)*0.5; // damping of radial linear gradient kernel @@ -1678,7 +1681,7 @@ void BakedLightBaker::throw_rays(ThreadStack& thread_stack,int p_amount) { dl.rays_thrown++; baked_light_baker_add_64i(&total_rays,1); _throw_ray(thread_stack,dl.bake_direct,from,to,dl.radius,col,dl.attenuation_table.ptr(),0,dl.radius,max_bounces,true); -// _throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true); + //_throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true); } } break; @@ -1710,7 +1713,7 @@ void BakedLightBaker::throw_rays(ThreadStack& thread_stack,int p_amount) { dl.rays_thrown++; baked_light_baker_add_64i(&total_rays,1); _throw_ray(thread_stack,dl.bake_direct,from,to,dl.radius,col,dl.attenuation_table.ptr(),0,dl.radius,max_bounces,true); - // _throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true); + //_throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true); } } break; @@ -1788,7 +1791,7 @@ void BakedLightBaker::bake(const Ref<BakedLight> &p_light, Node* p_node) { } -void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) { +void BakedLightBaker::update_octree_sampler(PoolVector<int> &p_sampler) { BakedLightBaker::Octant *octants=octant_pool.ptr(); double norm = 1.0/double(total_rays); @@ -1845,7 +1848,7 @@ void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) { } p_sampler.resize(tmp_smp.size()); - DVector<int>::Write w = p_sampler.write(); + PoolVector<int>::Write w = p_sampler.write(); int ss = tmp_smp.size(); for(int i=0;i<ss;i++) { w[i]=tmp_smp[i]; @@ -1859,7 +1862,7 @@ void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) { double mult = baked_light->get_energy_multiplier(); float saturation = baked_light->get_saturation(); - DVector<int>::Write w = p_sampler.write(); + PoolVector<int>::Write w = p_sampler.write(); encode_uint32(octree_depth,(uint8_t*)&w[2]); encode_uint32(linear_color,(uint8_t*)&w[3]); @@ -1900,7 +1903,7 @@ void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) { } -void BakedLightBaker::update_octree_images(DVector<uint8_t> &p_octree,DVector<uint8_t> &p_light) { +void BakedLightBaker::update_octree_images(PoolVector<uint8_t> &p_octree,PoolVector<uint8_t> &p_light) { int len = baked_octree_texture_w*baked_octree_texture_h*4; @@ -1910,10 +1913,10 @@ void BakedLightBaker::update_octree_images(DVector<uint8_t> &p_octree,DVector<ui p_light.resize(ilen); - DVector<uint8_t>::Write w = p_octree.write(); + PoolVector<uint8_t>::Write w = p_octree.write(); zeromem(w.ptr(),len); - DVector<uint8_t>::Write iw = p_light.write(); + PoolVector<uint8_t>::Write iw = p_light.write(); zeromem(iw.ptr(),ilen); float gamma = baked_light->get_gamma_adjust(); @@ -2010,8 +2013,10 @@ void BakedLightBaker::update_octree_images(DVector<uint8_t> &p_octree,DVector<ui //write colors for(int j=0;j<8;j++) { - //if (!oct.children[j]) - // continue; + /* + if (!oct.children[j]) + continue; + */ uint8_t *iptr=&lptr[ofs+lchild_offsets[j]]; float r=oct.light_accum[j][0]*norm; @@ -2291,7 +2296,7 @@ void BakedLightBaker::_plot_pixel_to_lightmap(int x, int y, int width, int heigh bool valid = b.aabb.smits_intersect_ray(from,n,0,len); //bool valid = b.aabb.intersects_segment(p_begin,p_end); - // bool valid = b.aabb.intersects(ray_aabb); + //bool valid = b.aabb.intersects(ray_aabb); if (!valid) { @@ -2612,14 +2617,14 @@ Error BakedLightBaker::transfer_to_lightmaps() { } } - DVector<uint8_t> dv; + PoolVector<uint8_t> dv; dv.resize(baked_textures[i].data.size()); { - DVector<uint8_t>::Write w = dv.write(); + PoolVector<uint8_t>::Write w = dv.write(); copymem(w.ptr(),baked_textures[i].data.ptr(),baked_textures[i].data.size()); } - Image img(baked_textures[i].width,baked_textures[i].height,0,Image::FORMAT_RGBA,dv); + Image img(baked_textures[i].width,baked_textures[i].height,0,Image::FORMAT_RGBA8,dv); Ref<ImageTexture> tex = memnew( ImageTexture ); tex->create_from_image(img); baked_light->set_lightmap_texture(i,tex); @@ -2649,10 +2654,13 @@ void BakedLightBaker::clear() { /* * ??? for(int i=0;i<octant_pool.size();i++) { - //if (octant_pool[i].leaf) { - // memdelete_arr( octant_pool[i].light ); - //} Vector<double> norm_arr; - //norm_arr.resize(lights.size()); + /* + if (octant_pool[i].leaf) { + memdelete_arr( octant_pool[i].light ); + } + Vector<double> norm_arr; + norm_arr.resize(lights.size()); + */ for(int i=0;i<lights.size();i++) { norm_arr[i] = 1.0/get_normalization(i); @@ -2674,7 +2682,7 @@ void BakedLightBaker::clear() { materials.clear(); textures.clear(); lights.clear(); - triangles.clear();; + triangles.clear(); endpoint_normal.clear(); endpoint_normal_bits.clear(); baked_octree_texture_w=0; @@ -2720,3 +2728,4 @@ BakedLightBaker::~BakedLightBaker() { clear(); } +#endif diff --git a/tools/editor/plugins/baked_light_baker.h b/tools/editor/plugins/baked_light_baker.h index d0fddf5563..89788338d9 100644 --- a/tools/editor/plugins/baked_light_baker.h +++ b/tools/editor/plugins/baked_light_baker.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -34,6 +34,8 @@ #include "scene/3d/mesh_instance.h" #include "os/thread.h" +#if 0 + class BakedLightBaker { public: @@ -43,10 +45,11 @@ public: OCTANT_POOL_CHUNK=1000000 }; - //struct OctantLight { - - // double accum[8][3]; - //}; + /* + struct OctantLight { + double accum[8][3]; + }; + */ struct Octant { bool leaf; @@ -362,8 +365,8 @@ public: Error transfer_to_lightmaps(); - void update_octree_sampler(DVector<int> &p_sampler); - void update_octree_images(DVector<uint8_t> &p_octree,DVector<uint8_t> &p_light); + void update_octree_sampler(PoolVector<int> &p_sampler); + void update_octree_images(PoolVector<uint8_t> &p_octree,PoolVector<uint8_t> &p_light); Ref<BakedLight> get_baked_light() { return baked_light; } @@ -375,3 +378,4 @@ public: }; #endif // BAKED_LIGHT_BAKER_H +#endif diff --git a/tools/editor/plugins/baked_light_baker_cmpxchg.cpp b/tools/editor/plugins/baked_light_baker_cmpxchg.cpp index c581995916..5e9228b7de 100644 --- a/tools/editor/plugins/baked_light_baker_cmpxchg.cpp +++ b/tools/editor/plugins/baked_light_baker_cmpxchg.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/plugins/baked_light_editor_plugin.cpp b/tools/editor/plugins/baked_light_editor_plugin.cpp index a58a0c25e2..6a7e708b85 100644 --- a/tools/editor/plugins/baked_light_editor_plugin.cpp +++ b/tools/editor/plugins/baked_light_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,13 +27,14 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "baked_light_editor_plugin.h" + #include "scene/gui/box_container.h" #include "scene/3d/mesh_instance.h" #include "io/marshalls.h" #include "io/resource_saver.h" - +#if 0 void BakedLightEditor::_end_baking() { @@ -88,7 +89,7 @@ void BakedLightEditor::_notification(int p_option) { float max_lum=0; { - DVector<Color>::Write cw=colors.write(); + PoolVector<Color>::Write cw=colors.write(); BakedLightBaker::Octant *octants=baker->octant_pool.ptr(); BakedLightBaker::Octant *oct = &octants[baker->leaf_list]; int vert_idx=0; @@ -105,8 +106,10 @@ void BakedLightEditor::_notification(int p_option) { colors[i].b=oct->light_accum[i][2]/norm; float lum = colors[i].get_v(); - //if (lum<0.05) - // color.a=0; + /* + if (lum<0.05) + color.a=0; + */ if (lum>max_lum) max_lum=lum; @@ -141,11 +144,11 @@ void BakedLightEditor::_notification(int p_option) { baker->update_octree_images(octree_texture,light_texture); baker->update_octree_sampler(octree_sampler); - // print_line("sampler size: "+itos(octree_sampler.size()*4)); + //print_line("sampler size: "+itos(octree_sampler.size()*4)); #if 1 //debug - Image img(baker->baked_octree_texture_w,baker->baked_octree_texture_h,0,Image::FORMAT_RGBA,octree_texture); + Image img(baker->baked_octree_texture_w,baker->baked_octree_texture_h,0,Image::FORMAT_RGBA8,octree_texture); Ref<ImageTexture> it = memnew( ImageTexture ); it->create_from_image(img); ResourceSaver::save("baked_octree.png",it); @@ -283,10 +286,10 @@ void BakedLightEditor::_bake_lightmaps() { void BakedLightEditor::_bind_methods() { - ObjectTypeDB::bind_method("_menu_option",&BakedLightEditor::_menu_option); - ObjectTypeDB::bind_method("_bake_pressed",&BakedLightEditor::_bake_pressed); - ObjectTypeDB::bind_method("_clear_pressed",&BakedLightEditor::_clear_pressed); - ObjectTypeDB::bind_method("_bake_lightmaps",&BakedLightEditor::_bake_lightmaps); + ClassDB::bind_method("_menu_option",&BakedLightEditor::_menu_option); + ClassDB::bind_method("_bake_pressed",&BakedLightEditor::_bake_pressed); + ClassDB::bind_method("_clear_pressed",&BakedLightEditor::_clear_pressed); + ClassDB::bind_method("_bake_lightmaps",&BakedLightEditor::_bake_lightmaps); } BakedLightEditor::BakedLightEditor() { @@ -373,3 +376,4 @@ BakedLightEditorPlugin::~BakedLightEditorPlugin() } +#endif diff --git a/tools/editor/plugins/baked_light_editor_plugin.h b/tools/editor/plugins/baked_light_editor_plugin.h index 4985d7513e..e311fe9f17 100644 --- a/tools/editor/plugins/baked_light_editor_plugin.h +++ b/tools/editor/plugins/baked_light_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,19 +40,19 @@ @author Juan Linietsky <reduzio@gmail.com> */ - +#if 0 class MeshInstance; class BakedLightEditor : public Control { - OBJ_TYPE(BakedLightEditor, Control ); + GDCLASS(BakedLightEditor, Control ); float update_timeout; - DVector<uint8_t> octree_texture; - DVector<uint8_t> light_texture; - DVector<int> octree_sampler; + PoolVector<uint8_t> octree_texture; + PoolVector<uint8_t> light_texture; + PoolVector<int> octree_sampler; BakedLightBaker *baker; AcceptDialog *err_dialog; @@ -97,7 +97,7 @@ public: class BakedLightEditorPlugin : public EditorPlugin { - OBJ_TYPE( BakedLightEditorPlugin, EditorPlugin ); + GDCLASS( BakedLightEditorPlugin, EditorPlugin ); BakedLightEditor *baked_light_editor; EditorNode *editor; @@ -116,5 +116,5 @@ public: }; #endif // MULTIMESH_EDITOR_PLUGIN_H - +#endif diff --git a/tools/editor/plugins/camera_editor_plugin.cpp b/tools/editor/plugins/camera_editor_plugin.cpp index 9c25de695c..1e0ec2b4a0 100644 --- a/tools/editor/plugins/camera_editor_plugin.cpp +++ b/tools/editor/plugins/camera_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "camera_editor_plugin.h" + #include "spatial_editor_plugin.h" @@ -61,7 +62,7 @@ void CameraEditor::_pressed() { void CameraEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_pressed"),&CameraEditor::_pressed); + ClassDB::bind_method(_MD("_pressed"),&CameraEditor::_pressed); } @@ -108,16 +109,14 @@ void CameraEditorPlugin::edit(Object *p_object) { bool CameraEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("Camera"); + return p_object->is_class("Camera"); } void CameraEditorPlugin::make_visible(bool p_visible) { if (p_visible) { -// SpatialEditor::get_singleton()->set_can_preview(p_object->cast_to<Camera>()); - + //SpatialEditor::get_singleton()->set_can_preview(p_object->cast_to<Camera>()); } else { - SpatialEditor::get_singleton()->set_can_preview(NULL); } diff --git a/tools/editor/plugins/camera_editor_plugin.h b/tools/editor/plugins/camera_editor_plugin.h index ea016ecb4d..7e79d0ec74 100644 --- a/tools/editor/plugins/camera_editor_plugin.h +++ b/tools/editor/plugins/camera_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -39,7 +39,7 @@ class CameraEditor : public Control { - OBJ_TYPE(CameraEditor, Control ); + GDCLASS(CameraEditor, Control ); Panel *panel; Button * preview; @@ -58,9 +58,9 @@ public: class CameraEditorPlugin : public EditorPlugin { - OBJ_TYPE( CameraEditorPlugin, EditorPlugin ); + GDCLASS( CameraEditorPlugin, EditorPlugin ); -// CameraEditor *camera_editor; + //CameraEditor *camera_editor; EditorNode *editor; public: diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp index af9fd69ae7..bec7956b8c 100644 --- a/tools/editor/plugins/canvas_item_editor_plugin.cpp +++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "canvas_item_editor_plugin.h" + #include "print_string.h" #include "tools/editor/editor_node.h" #include "os/keyboard.h" @@ -41,7 +42,7 @@ #include "os/input.h" #include "tools/editor/editor_settings.h" #include "scene/gui/grid_container.h" -#include "scene/gui/patch_9_frame.h" +#include "scene/gui/patch_9_rect.h" #include "tools/editor/animation_editor.h" #include "tools/editor/plugins/animation_player_editor_plugin.h" #include "tools/editor/script_editor_debugger.h" @@ -55,7 +56,7 @@ class SnapDialog : public ConfirmationDialog { - OBJ_TYPE(SnapDialog,ConfirmationDialog); + GDCLASS(SnapDialog,ConfirmationDialog); friend class CanvasItemEditor; @@ -79,7 +80,7 @@ public: container = memnew( VBoxContainer ); add_child(container); - set_child_rect(container); + //set_child_rect(container); child_container = memnew( GridContainer ); child_container->set_columns(3); @@ -149,21 +150,21 @@ public: } void set_fields(const Point2 p_grid_offset, const Size2 p_grid_step, const float p_rotation_offset, const float p_rotation_step) { - grid_offset_x->set_val(p_grid_offset.x); - grid_offset_y->set_val(p_grid_offset.y); - grid_step_x->set_val(p_grid_step.x); - grid_step_y->set_val(p_grid_step.y); - rotation_offset->set_val(p_rotation_offset * (180 / Math_PI)); - rotation_step->set_val(p_rotation_step * (180 / Math_PI)); + grid_offset_x->set_value(p_grid_offset.x); + grid_offset_y->set_value(p_grid_offset.y); + grid_step_x->set_value(p_grid_step.x); + grid_step_y->set_value(p_grid_step.y); + rotation_offset->set_value(p_rotation_offset * (180 / Math_PI)); + rotation_step->set_value(p_rotation_step * (180 / Math_PI)); } void get_fields(Point2 &p_grid_offset, Size2 &p_grid_step, float &p_rotation_offset, float &p_rotation_step) { - p_grid_offset.x = grid_offset_x->get_val(); - p_grid_offset.y = grid_offset_y->get_val(); - p_grid_step.x = grid_step_x->get_val(); - p_grid_step.y = grid_step_y->get_val(); - p_rotation_offset = rotation_offset->get_val() / (180 / Math_PI); - p_rotation_step = rotation_step->get_val() / (180 / Math_PI); + p_grid_offset.x = grid_offset_x->get_value(); + p_grid_offset.y = grid_offset_y->get_value(); + p_grid_step.x = grid_step_x->get_value(); + p_grid_step.y = grid_step_y->get_value(); + p_rotation_offset = rotation_offset->get_value() / (180 / Math_PI); + p_rotation_step = rotation_step->get_value() / (180 / Math_PI); } }; @@ -179,7 +180,7 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2& mouse_pos) { if (n2d && n2d->edit_has_pivot()) { Vector2 offset = n2d->edit_get_pivot(); - Vector2 gpos = n2d->get_global_pos(); + Vector2 gpos = n2d->get_global_position(); Vector2 local_mouse_pos = n2d->get_canvas_transform().affine_inverse().xform(mouse_pos); @@ -194,8 +195,8 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2& mouse_pos) { if (!n2dc) continue; - undo_redo->add_do_method(n2dc,"set_global_pos",n2dc->get_global_pos()); - undo_redo->add_undo_method(n2dc,"set_global_pos",n2dc->get_global_pos()); + undo_redo->add_do_method(n2dc,"set_global_pos",n2dc->get_global_position()); + undo_redo->add_undo_method(n2dc,"set_global_pos",n2dc->get_global_position()); } @@ -209,7 +210,7 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2& mouse_pos) { void CanvasItemEditor::_unhandled_key_input(const InputEvent& p_ev) { - if (!is_visible() || get_viewport()->gui_has_modal_stack()) + if (!is_visible_in_tree() || get_viewport()->gui_has_modal_stack()) return; if (p_ev.key.mod.control) @@ -286,8 +287,8 @@ Dictionary CanvasItemEditor::get_state() const { Dictionary state; state["zoom"]=zoom; - state["ofs"]=Point2(h_scroll->get_val(),v_scroll->get_val()); -// state["ofs"]=-transform.get_origin(); + state["ofs"]=Point2(h_scroll->get_value(),v_scroll->get_value()); + //state["ofs"]=-transform.get_origin(); state["snap_offset"]=snap_offset; state["snap_step"]=snap_step; state["snap_rotation_offset"]=snap_rotation_offset; @@ -310,8 +311,8 @@ void CanvasItemEditor::set_state(const Dictionary& p_state){ if (state.has("ofs")) { _update_scrollbars(); // i wonder how safe is calling this here.. Point2 ofs=p_state["ofs"]; - h_scroll->set_val(ofs.x); - v_scroll->set_val(ofs.y); + h_scroll->set_value(ofs.x); + v_scroll->set_value(ofs.y); } if (state.has("snap_step")) { @@ -391,7 +392,7 @@ void CanvasItemEditor::_remove_canvas_item(CanvasItem *p_canvas_item) { } void CanvasItemEditor::_clear_canvas_items() { - editor_selection->clear();; + editor_selection->clear(); #if 0 while(canvas_items.size()) _remove_canvas_item(canvas_items.front()->key()); @@ -425,7 +426,7 @@ void CanvasItemEditor::_node_removed(Node *p_node) { void CanvasItemEditor::_keying_changed() { - if (AnimationPlayerEditor::singleton->get_key_editor()->is_visible()) + if (AnimationPlayerEditor::singleton->get_key_editor()->is_visible_in_tree()) animation_hb->show(); else animation_hb->hide(); @@ -440,7 +441,7 @@ bool CanvasItemEditor::_is_part_of_subscene(CanvasItem *p_item) { } // slow but modern computers should have no problem -CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform) { +CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform) { if (!p_node) return NULL; @@ -465,7 +466,7 @@ CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Nod return r; } - if (c && c->is_visible() && !c->has_meta("_edit_lock_") && !_is_part_of_subscene(c) && !c->cast_to<CanvasLayer>()) { + if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !_is_part_of_subscene(c) && !c->cast_to<CanvasLayer>()) { Rect2 rect = c->get_item_rect(); Point2 local_pos = (p_parent_xform * p_canvas_xform * c->get_transform()).affine_inverse().xform(p_pos); @@ -479,7 +480,7 @@ CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Nod return NULL; } -void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform, Vector<_SelectResult> &r_items) { +void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform, Vector<_SelectResult> &r_items) { if (!p_node) return; if (p_node->cast_to<Viewport>()) @@ -498,7 +499,7 @@ void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_nod } - if (c && c->is_visible() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) { + if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) { Rect2 rect = c->get_item_rect(); Point2 local_pos = (p_parent_xform * p_canvas_xform * c->get_transform()).affine_inverse().xform(p_pos); @@ -519,7 +520,7 @@ void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_nod return; } -void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform,List<CanvasItem*> *r_items) { +void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform,List<CanvasItem*> *r_items) { if (!p_node) return; @@ -529,21 +530,28 @@ void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2& p_rect,Node* p_no CanvasItem *c=p_node->cast_to<CanvasItem>(); - for (int i=p_node->get_child_count()-1;i>=0;i--) { + bool inherited=p_node!=get_tree()->get_edited_scene_root() && p_node->get_filename()!=""; + bool editable=false; + if (inherited){ + editable=EditorNode::get_singleton()->get_edited_scene()->is_editable_instance(p_node); + } + bool lock_children=p_node->has_meta("_edit_group_") && p_node->get_meta("_edit_group_"); + if (!lock_children && (!inherited || editable)) { + for (int i=p_node->get_child_count()-1;i>=0;i--) { - if (c && !c->is_set_as_toplevel()) - _find_canvas_items_at_rect(p_rect,p_node->get_child(i),p_parent_xform * c->get_transform(),p_canvas_xform,r_items); - else { - CanvasLayer *cl = p_node->cast_to<CanvasLayer>(); - _find_canvas_items_at_rect(p_rect,p_node->get_child(i),transform,cl?cl->get_transform():p_canvas_xform,r_items); + if (c && !c->is_set_as_toplevel()) + _find_canvas_items_at_rect(p_rect,p_node->get_child(i),p_parent_xform * c->get_transform(),p_canvas_xform,r_items); + else { + CanvasLayer *cl = p_node->cast_to<CanvasLayer>(); + _find_canvas_items_at_rect(p_rect,p_node->get_child(i),transform,cl?cl->get_transform():p_canvas_xform,r_items); + } } } - - if (c && c->is_visible() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) { + if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) { Rect2 rect = c->get_item_rect(); - Matrix32 xform = p_parent_xform * p_canvas_xform * c->get_transform(); + Transform2D xform = p_parent_xform * p_canvas_xform * c->get_transform(); if ( p_rect.has_point( xform.xform( rect.pos ) ) && p_rect.has_point( xform.xform( rect.pos+Vector2(rect.size.x,0) ) ) && @@ -594,7 +602,7 @@ bool CanvasItemEditor::_select(CanvasItem *item, Point2 p_click_pos, bool p_appe if (!item) { //clear because nothing clicked - editor_selection->clear();; + editor_selection->clear(); if (p_drag) { drag_from=transform.affine_inverse().xform(p_click_pos); @@ -626,7 +634,7 @@ bool CanvasItemEditor::_select(CanvasItem *item, Point2 p_click_pos, bool p_appe for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -669,7 +677,7 @@ void CanvasItemEditor::_key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -701,11 +709,11 @@ void CanvasItemEditor::_key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE if (Node2D *node_2d = canvas_item->cast_to<Node2D>()) { if (p_move_mode == MOVE_LOCAL_WITH_ROT) { - Matrix32 m; - m.rotate( node_2d->get_rot() ); + Transform2D m; + m.rotate( node_2d->get_rotation() ); drag = m.xform(drag); } - node_2d->set_pos(node_2d->get_pos() + drag); + node_2d->set_position(node_2d->get_position() + drag); } else if (Control *control = canvas_item->cast_to<Control>()) { @@ -731,7 +739,7 @@ Point2 CanvasItemEditor::_find_topleftmost_point() { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -740,7 +748,7 @@ Point2 CanvasItemEditor::_find_topleftmost_point() { Rect2 rect=canvas_item->get_item_rect(); - Matrix32 xform=canvas_item->get_global_transform_with_canvas(); + Transform2D xform=canvas_item->get_global_transform_with_canvas(); r2.expand_to(xform.xform(rect.pos)); r2.expand_to(xform.xform(rect.pos+Vector2(rect.size.x,0))); @@ -762,7 +770,7 @@ int CanvasItemEditor::get_item_count() { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -784,7 +792,7 @@ CanvasItem *CanvasItemEditor::get_single_item() { for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -798,15 +806,15 @@ CanvasItem *CanvasItemEditor::get_single_item() { return single_item; } -CanvasItemEditor::DragType CanvasItemEditor::_find_drag_type(const Matrix32& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point) { +CanvasItemEditor::DragType CanvasItemEditor::_find_drag_type(const Transform2D& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point) { CanvasItem *canvas_item = get_single_item(); ERR_FAIL_COND_V(!canvas_item,DRAG_NONE); Rect2 rect=canvas_item->get_item_rect(); - Matrix32 xforml=canvas_item->get_global_transform_with_canvas(); - Matrix32 xform=transform * xforml; + Transform2D xforml=canvas_item->get_global_transform_with_canvas(); + Transform2D xform=transform * xforml; Vector2 endpoints[4]={ @@ -954,7 +962,7 @@ void CanvasItemEditor::_dialog_value_changed(double) { case ZOOM_SET: { - zoom=dialog_val->get_val()/100.0; + zoom=dialog_val->get_value()/100.0; _update_scroll(0); viewport->update(); @@ -996,7 +1004,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) { if (!scene) return; - _find_canvas_items_at_pos(click, scene,transform,Matrix32(), selection_results); + _find_canvas_items_at_pos(click, scene,transform,Transform2D(), selection_results); for(int i=0;i<selection_results.size();i++) { CanvasItem *item=selection_results[i].item; @@ -1033,7 +1041,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) { if (item->has_meta("_editor_icon")) icon=item->get_meta("_editor_icon"); else - icon=get_icon( has_icon(item->get_type(),"EditorIcons")?item->get_type():String("Object"),"EditorIcons"); + icon=get_icon( has_icon(item->get_class(),"EditorIcons")?item->get_class():String("Object"),"EditorIcons"); String node_path="/"+root_name+"/"+root_path.rel_path_to(item->get_path()); @@ -1041,7 +1049,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) { selection_menu->set_item_icon(i, icon ); selection_menu->set_item_metadata(i, node_path); selection_menu->set_item_tooltip(i,String(item->get_name())+ - "\nType: "+item->get_type()+"\nPath: "+node_path); + "\nType: "+item->get_class()+"\nPath: "+node_path); } additive_selection=b.mod.shift; @@ -1057,7 +1065,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) { } -void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { +void CanvasItemEditor::_viewport_gui_input(const InputEvent& p_event) { { @@ -1065,7 +1073,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { EditorPluginList *over_plugin_list = en->get_editor_plugins_over(); if (!over_plugin_list->empty()) { - bool discard = over_plugin_list->forward_input_event(transform,p_event); + bool discard = over_plugin_list->forward_gui_input(transform,p_event); if (discard) { accept_event(); return; @@ -1089,8 +1097,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { { Point2 ofs(b.x,b.y); ofs = ofs/prev_zoom - ofs/zoom; - h_scroll->set_val( h_scroll->get_val() + ofs.x ); - v_scroll->set_val( v_scroll->get_val() + ofs.y ); + h_scroll->set_value( h_scroll->get_value() + ofs.x ); + v_scroll->set_value( v_scroll->get_value() + ofs.y ); } _update_scroll(0); viewport->update(); @@ -1107,8 +1115,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { { Point2 ofs(b.x,b.y); ofs = ofs/prev_zoom - ofs/zoom; - h_scroll->set_val( h_scroll->get_val() + ofs.x ); - v_scroll->set_val( v_scroll->get_val() + ofs.y ); + h_scroll->set_value( h_scroll->get_value() + ofs.x ); + v_scroll->set_value( v_scroll->get_value() + ofs.y ); } _update_scroll(0); @@ -1145,7 +1153,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -1180,8 +1188,10 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { } return; } - //if (!canvas_items.size()) - // return; + /* + if (!canvas_items.size()) + return; + */ if (b.button_index==BUTTON_LEFT && tool==TOOL_LIST_SELECT) { if (b.pressed) @@ -1240,7 +1250,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -1288,7 +1298,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if (bsfrom.y>bsto.y) SWAP(bsfrom.y,bsto.y); - _find_canvas_items_at_rect(Rect2(bsfrom,bsto-bsfrom),scene,transform,Matrix32(),&selitems); + _find_canvas_items_at_rect(Rect2(bsfrom,bsto-bsfrom),scene,transform,Transform2D(),&selitems); for(List<CanvasItem*>::Element *E=selitems.front();E;E=E->next()) { @@ -1310,7 +1320,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { { bone_ik_list.clear(); float closest_dist=1e20; - int bone_width = EditorSettings::get_singleton()->get("2d_editor/bone_width"); + int bone_width = EditorSettings::get_singleton()->get("editors/2d/bone_width"); for(Map<ObjectID,BoneList>::Element *E=bone_list.front();E;E=E->next()) { if (E->get().from == E->get().to) @@ -1348,7 +1358,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if (!pi) break; - float len=pi->get_global_transform().get_origin().distance_to(b->get_global_pos()); + float len=pi->get_global_transform().get_origin().distance_to(b->get_global_position()); b=pi->cast_to<Node2D>(); if (!b) break; @@ -1408,9 +1418,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { return; } - Matrix32 xform = transform * canvas_item->get_global_transform_with_canvas(); + Transform2D xform = transform * canvas_item->get_global_transform_with_canvas(); Rect2 rect=canvas_item->get_item_rect(); - // float handle_radius = handle_len * 1.4144; //magic number, guess what it means! + //float handle_radius = handle_len * 1.4144; //magic number, guess what it means! if (tool==TOOL_SELECT) { drag = _find_drag_type(xform,rect,click,drag_point_from); @@ -1451,7 +1461,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -1497,7 +1507,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { } if (!c) { - c =_select_canvas_item_at_pos(click, scene,transform,Matrix32()); + c =_select_canvas_item_at_pos(click, scene,transform,Transform2D()); CanvasItem* cn = c; @@ -1512,7 +1522,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { Node* n = c; - while ((n && n != scene && n->get_owner() != scene) || (n && !n->is_type("CanvasItem"))) { + while ((n && n != scene && n->get_owner() != scene) || (n && !n->is_class("CanvasItem"))) { n = n->get_parent(); }; c = n->cast_to<CanvasItem>(); @@ -1528,7 +1538,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if (p_event.type==InputEvent::MOUSE_MOTION) { - if (!viewport->has_focus() && (!get_focus_owner() || !get_focus_owner()->is_text_field())) + if (!viewport->has_focus() && (!get_focus_owner() || !get_focus_owner()->is_text_field())) viewport->call_deferred("grab_focus"); const InputEventMouseMotion &m=p_event.mouse_motion; @@ -1546,9 +1556,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if ( (m.button_mask&BUTTON_MASK_LEFT && tool == TOOL_PAN) || m.button_mask&BUTTON_MASK_MIDDLE || (m.button_mask&BUTTON_MASK_LEFT && Input::get_singleton()->is_key_pressed(KEY_SPACE))) { - - h_scroll->set_val( h_scroll->get_val() - m.relative_x/zoom); - v_scroll->set_val( v_scroll->get_val() - m.relative_y/zoom); + h_scroll->set_value( h_scroll->get_value() - m.relative_x/zoom); + v_scroll->set_value( v_scroll->get_value() - m.relative_y/zoom); } return; @@ -1561,7 +1570,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -1594,10 +1603,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if (node) { - Matrix32 rot; - rot.elements[1] = (dfrom - center).normalized(); - rot.elements[0] = rot.elements[1].tangent(); - node->set_rot(snap_angle(rot.xform_inv(dto-center).angle() + node->get_rot(), node->get_rot())); + real_t angle = node->get_rotation(); + node->set_rotation(snap_angle( angle + (dfrom - center).angle_to(dto-center), angle )); display_rotate_to = dto; display_rotate_from = center; viewport->update(); @@ -1609,10 +1616,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if (node) { - Matrix32 rot; - rot.elements[1] = (dfrom - center).normalized(); - rot.elements[0] = rot.elements[1].tangent(); - node->set_rotation(snap_angle(rot.xform_inv(dto-center).angle() + node->get_rotation(), node->get_rotation())); + real_t angle = node->get_rotation(); + node->set_rotation(snap_angle( angle + (dfrom - center).angle_to(dto-center), angle )); display_rotate_to = dto; display_rotate_from = center; viewport->update(); @@ -1649,7 +1654,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { Vector2 minsize = canvas_item->edit_get_minimum_size(); if (uniform) { - float aspect = local_rect.size.get_aspect(); + float aspect = local_rect.size.aspect(); switch(drag) { case DRAG_BOTTOM_LEFT: case DRAG_TOP_RIGHT: { @@ -1745,7 +1750,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { Node2D *n2d = canvas_item->cast_to<Node2D>(); - Matrix32 final_xform = bone_orig_xform; + Transform2D final_xform = bone_orig_xform; @@ -1847,11 +1852,11 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) { if (!E->prev()) { //last goes to what it was - final_xform.set_origin(n->get_global_pos()); + final_xform.set_origin(n->get_global_position()); n->set_global_transform(final_xform); } else { - Vector2 rel = (E->prev()->get().node->get_global_pos() - n->get_global_pos()).normalized(); + Vector2 rel = (E->prev()->get().node->get_global_position() - n->get_global_position()).normalized(); Vector2 rel2 = (E->prev()->get().pos - E->get().pos).normalized(); float rot = rel.angle_to(rel2); if (n->get_global_transform().basis_determinant()<0) { @@ -1917,7 +1922,7 @@ void CanvasItemEditor::_viewport_draw() { if (snap_show_grid) { Size2 s = viewport->get_size(); int last_cell; - Matrix32 xform = transform.affine_inverse(); + Transform2D xform = transform.affine_inverse(); if (snap_step.x!=0) { for(int i=0;i<s.width;i++) { @@ -1944,9 +1949,9 @@ void CanvasItemEditor::_viewport_draw() { if (viewport->has_focus()) { Size2 size = viewport->get_size(); - if (v_scroll->is_visible()) + if (v_scroll->is_visible_in_tree()) size.width-=v_scroll->get_size().width; - if (h_scroll->is_visible()) + if (h_scroll->is_visible_in_tree()) size.height-=h_scroll->get_size().height; get_stylebox("EditorFocus","EditorStyles")->draw(ci,Rect2(Point2(),size)); @@ -1955,7 +1960,6 @@ void CanvasItemEditor::_viewport_draw() { Ref<Texture> lock = get_icon("Lock","EditorIcons"); Ref<Texture> group = get_icon("Group","EditorIcons"); - VisualServer::get_singleton()->canvas_item_set_clip(ci,true); bool single = get_single_item()!=NULL; @@ -1967,7 +1971,7 @@ void CanvasItemEditor::_viewport_draw() { CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) continue; @@ -1978,7 +1982,7 @@ void CanvasItemEditor::_viewport_draw() { Rect2 rect=canvas_item->get_item_rect(); - Matrix32 xform=transform * canvas_item->get_global_transform_with_canvas(); + Transform2D xform=transform * canvas_item->get_global_transform_with_canvas(); VisualServer::get_singleton()->canvas_item_add_set_transform(ci,xform); Vector2 endpoints[4]={ @@ -1991,7 +1995,7 @@ void CanvasItemEditor::_viewport_draw() { Color c = Color(1,0.6,0.4,0.7); - VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Matrix32()); + VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Transform2D()); for(int i=0;i<4;i++) { viewport->draw_line(endpoints[i],endpoints[(i+1)%4],c,2); @@ -2041,7 +2045,7 @@ void CanvasItemEditor::_viewport_draw() { } pivot_button->set_disabled(!pivot_found); - VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Matrix32()); + VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Transform2D()); @@ -2067,7 +2071,7 @@ void CanvasItemEditor::_viewport_draw() { VisualServer::get_singleton()->canvas_item_add_line(ci,transform.xform(display_rotate_from), transform.xform(display_rotate_to),rotate_color); } - Size2 screen_size = Size2( Globals::get_singleton()->get("display/width"), Globals::get_singleton()->get("display/height") ); + Size2 screen_size = Size2( GlobalConfig::get_singleton()->get("display/window/width"), GlobalConfig::get_singleton()->get("display/window/height") ); Vector2 screen_endpoints[4]= { transform.xform(Vector2(0,0)), @@ -2110,11 +2114,11 @@ void CanvasItemEditor::_viewport_draw() { } if (skeleton_show_bones) { - int bone_width = EditorSettings::get_singleton()->get("2d_editor/bone_width"); - Color bone_color1 = EditorSettings::get_singleton()->get("2d_editor/bone_color1"); - Color bone_color2 = EditorSettings::get_singleton()->get("2d_editor/bone_color2"); - Color bone_ik_color = EditorSettings::get_singleton()->get("2d_editor/bone_ik_color"); - Color bone_selected_color = EditorSettings::get_singleton()->get("2d_editor/bone_selected_color"); + int bone_width = EditorSettings::get_singleton()->get("editors/2d/bone_width"); + Color bone_color1 = EditorSettings::get_singleton()->get("editors/2d/bone_color1"); + Color bone_color2 = EditorSettings::get_singleton()->get("editors/2d/bone_color2"); + Color bone_ik_color = EditorSettings::get_singleton()->get("editors/2d/bone_ik_color"); + Color bone_selected_color = EditorSettings::get_singleton()->get("editors/2d/bone_selected_color"); for(Map<ObjectID,BoneList>::Element*E=bone_list.front();E;E=E->next()) { @@ -2140,8 +2144,8 @@ void CanvasItemEditor::_viewport_draw() { if (!pn2d) continue; - Vector2 from = transform.xform(pn2d->get_global_pos()); - Vector2 to = transform.xform(n2d->get_global_pos()); + Vector2 from = transform.xform(pn2d->get_global_position()); + Vector2 to = transform.xform(n2d->get_global_position()); E->get().from=from; E->get().to=to; @@ -2196,7 +2200,7 @@ void CanvasItemEditor::_notification(int p_what) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2213,7 +2217,7 @@ void CanvasItemEditor::_notification(int p_what) { Rect2 r=canvas_item->get_item_rect(); - Matrix32 xform = canvas_item->get_transform(); + Transform2D xform = canvas_item->get_transform(); if (r != se->prev_rect || xform!=se->prev_xform) { viewport->update(); @@ -2224,7 +2228,7 @@ void CanvasItemEditor::_notification(int p_what) { } bool show_anchor = all_control && has_control; - if (show_anchor != !anchor_menu->is_hidden()) { + if (show_anchor != anchor_menu->is_visible()) { if (show_anchor) anchor_menu->show(); else @@ -2328,7 +2332,7 @@ void CanvasItemEditor::edit(CanvasItem *p_canvas_item) { } -void CanvasItemEditor::_find_canvas_items_span(Node *p_node, Rect2& r_rect, const Matrix32& p_xform) { +void CanvasItemEditor::_find_canvas_items_span(Node *p_node, Rect2& r_rect, const Transform2D& p_xform) { @@ -2340,20 +2344,20 @@ void CanvasItemEditor::_find_canvas_items_span(Node *p_node, Rect2& r_rect, cons for (int i=p_node->get_child_count()-1;i>=0;i--) { -// CanvasItem *r=NULL; + //CanvasItem *r=NULL; if (c && !c->is_set_as_toplevel()) _find_canvas_items_span(p_node->get_child(i),r_rect,p_xform * c->get_transform()); else - _find_canvas_items_span(p_node->get_child(i),r_rect,Matrix32()); + _find_canvas_items_span(p_node->get_child(i),r_rect,Transform2D()); } - if (c) { + if (c && c->is_visible_in_tree()) { Rect2 rect = c->get_item_rect(); - Matrix32 xform = p_xform * c->get_transform(); + Transform2D xform = p_xform * c->get_transform(); LockList lock; @@ -2402,19 +2406,20 @@ void CanvasItemEditor::_update_scrollbars() { h_scroll->set_end( Point2(size.width-vmin.width, size.height) ); - Size2 screen_rect = Size2( Globals::get_singleton()->get("display/width"), Globals::get_singleton()->get("display/height") ); + Size2 screen_rect = Size2( GlobalConfig::get_singleton()->get("display/window/width"), GlobalConfig::get_singleton()->get("display/window/height") ); + Rect2 local_rect = Rect2(Point2(),viewport->get_size()-Size2(vmin.width,hmin.height)); Rect2 canvas_item_rect=Rect2(Point2(),screen_rect); - lock_list.clear();; + lock_list.clear(); bone_last_frame++; if (editor->get_edited_scene()) - _find_canvas_items_span(editor->get_edited_scene(),canvas_item_rect,Matrix32()); + _find_canvas_items_span(editor->get_edited_scene(),canvas_item_rect,Transform2D()); List<Map<ObjectID,BoneList>::Element*> bone_to_erase; @@ -2449,13 +2454,13 @@ void CanvasItemEditor::_update_scrollbars() { v_scroll->set_page(local_rect.size.y/zoom); if (first_update) { //so 0,0 is visible - v_scroll->set_val(-10); - h_scroll->set_val(-10); + v_scroll->set_value(-10); + h_scroll->set_value(-10); first_update=false; } - ofs.y=v_scroll->get_val(); + ofs.y=v_scroll->get_value(); } if (canvas_item_rect.size.width <= (local_rect.size.x/zoom)) { @@ -2468,17 +2473,18 @@ void CanvasItemEditor::_update_scrollbars() { h_scroll->set_min(canvas_item_rect.pos.x); h_scroll->set_max(canvas_item_rect.pos.x+canvas_item_rect.size.x); h_scroll->set_page(local_rect.size.x/zoom); - ofs.x=h_scroll->get_val(); + ofs.x=h_scroll->get_value(); } -// transform=Matrix32(); + //transform=Matrix32(); transform.elements[2]=-ofs*zoom; + editor->get_scene_root()->set_global_canvas_transform(transform); updating_scroll=false; -// transform.scale_basis(Vector2(zoom,zoom)); + //transform.scale_basis(Vector2(zoom,zoom)); } @@ -2490,12 +2496,12 @@ void CanvasItemEditor::_update_scroll(float) { return; Point2 ofs; - ofs.x=h_scroll->get_val(); - ofs.y=v_scroll->get_val(); + ofs.x=h_scroll->get_value(); + ofs.y=v_scroll->get_value(); -// current_window->set_scroll(-ofs); + //current_window->set_scroll(-ofs); - transform=Matrix32(); + transform=Transform2D(); transform.scale_basis(Size2(zoom,zoom)); transform.elements[2]=-ofs; @@ -2604,7 +2610,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { dialog_val->set_min(0.1); dialog_val->set_step(0.1); dialog_val->set_max(800); - dialog_val->set_val(zoom*100); + dialog_val->set_value(zoom*100); value_dialog->popup_centered(Size2(200,85)); updating_value_dialog=false; @@ -2617,7 +2623,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2635,7 +2641,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2656,7 +2662,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2674,7 +2680,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2695,7 +2701,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2816,7 +2822,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2826,9 +2832,9 @@ void CanvasItemEditor::_popup_callback(int p_op) { Node2D *n2d = canvas_item->cast_to<Node2D>(); if (key_pos) - AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/pos",n2d->get_pos(),existing); + AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/pos",n2d->get_position(),existing); if (key_rot) - AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/rot",Math::rad2deg(n2d->get_rot()),existing); + AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/rot",Math::rad2deg(n2d->get_rotation()),existing); if (key_scale) AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/scale",n2d->get_scale(),existing); @@ -2858,9 +2864,9 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(List<Node2D*>::Element *F=ik_chain.front();F;F=F->next()) { if (key_pos) - AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/pos",F->get()->get_pos(),existing); + AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/pos",F->get()->get_position(),existing); if (key_rot) - AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/rot",Math::rad2deg(F->get()->get_rot()),existing); + AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/rot",Math::rad2deg(F->get()->get_rotation()),existing); if (key_scale) AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/scale",F->get()->get_scale(),existing); @@ -2921,7 +2927,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { } break;*/ case ANIM_COPY_POSE: { - pose_clipboard.clear();; + pose_clipboard.clear(); Map<Node*,Object*> &selection = editor_selection->get_selection(); @@ -2929,7 +2935,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2940,8 +2946,8 @@ void CanvasItemEditor::_popup_callback(int p_op) { Node2D *n2d = canvas_item->cast_to<Node2D>(); PoseClipboard pc; - pc.pos=n2d->get_pos(); - pc.rot=n2d->get_rot(); + pc.pos=n2d->get_position(); + pc.rot=n2d->get_rotation(); pc.scale=n2d->get_scale(); pc.id=n2d->get_instance_ID(); pose_clipboard.push_back(pc); @@ -2967,8 +2973,8 @@ void CanvasItemEditor::_popup_callback(int p_op) { undo_redo->add_do_method(n2d,"set_pos",E->get().pos); undo_redo->add_do_method(n2d,"set_rot",E->get().rot); undo_redo->add_do_method(n2d,"set_scale",E->get().scale); - undo_redo->add_undo_method(n2d,"set_pos",n2d->get_pos()); - undo_redo->add_undo_method(n2d,"set_rot",n2d->get_rot()); + undo_redo->add_undo_method(n2d,"set_pos",n2d->get_position()); + undo_redo->add_undo_method(n2d,"set_rot",n2d->get_rotation()); undo_redo->add_undo_method(n2d,"set_scale",n2d->get_scale()); } undo_redo->commit_action(); @@ -2981,7 +2987,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -2991,9 +2997,9 @@ void CanvasItemEditor::_popup_callback(int p_op) { Node2D *n2d = canvas_item->cast_to<Node2D>(); if (key_pos) - n2d->set_pos(Vector2()); + n2d->set_position(Vector2()); if (key_rot) - n2d->set_rot(0); + n2d->set_rotation(0); if (key_scale) n2d->set_scale(Vector2(1,1)); } else if (canvas_item->cast_to<Control>()) { @@ -3002,8 +3008,10 @@ void CanvasItemEditor::_popup_callback(int p_op) { if (key_pos) ctrl->set_pos(Point2()); - //if (key_scale) - // AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(ctrl,"rect/size",ctrl->get_size()); + /* + if (key_scale) + AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(ctrl,"rect/size",ctrl->get_size()); + */ } } @@ -3027,7 +3035,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { Node2D *n2d = E->key()->cast_to<Node2D>(); if (!n2d) continue; - if (!n2d->is_visible()) + if (!n2d->is_visible_in_tree()) continue; if (!n2d->get_parent_item()) continue; @@ -3049,7 +3057,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { Node2D *n2d = E->key()->cast_to<Node2D>(); if (!n2d) continue; - if (!n2d->is_visible()) + if (!n2d->is_visible_in_tree()) continue; n2d->set_meta("_edit_bone_",Variant()); @@ -3067,7 +3075,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { for(List<Node*>::Element *E=selection.front();E;E=E->next()) { CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>(); - if (!canvas_item || !canvas_item->is_visible()) + if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root()) @@ -3091,7 +3099,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { CanvasItem *n2d = E->key()->cast_to<CanvasItem>(); if (!n2d) continue; - if (!n2d->is_visible()) + if (!n2d->is_visible_in_tree()) continue; n2d->set_meta("_edit_ik_",Variant()); @@ -3149,7 +3157,7 @@ void CanvasItemEditor::_focus_selection(int p_op) { // counting invisible items, for now - //if (!canvas_item->is_visible()) continue; + //if (!canvas_item->is_visible_in_tree()) continue; ++count; Rect2 item_rect = canvas_item->get_item_rect(); @@ -3158,7 +3166,7 @@ void CanvasItemEditor::_focus_selection(int p_op) { Vector2 scale = canvas_item->get_global_transform().get_scale(); real_t angle = canvas_item->get_global_transform().get_rotation(); - Matrix32 t(angle, Vector2(0.f,0.f)); + Transform2D t(angle, Vector2(0.f,0.f)); item_rect = t.xform(item_rect); Rect2 canvas_item_rect(pos + scale*item_rect.pos, scale*item_rect.size); if (count == 1) { @@ -3173,8 +3181,8 @@ void CanvasItemEditor::_focus_selection(int p_op) { center = rect.pos + rect.size/2; Vector2 offset = viewport->get_size()/2 - editor->get_scene_root()->get_global_canvas_transform().xform(center); - h_scroll->set_val(h_scroll->get_val() - offset.x/zoom); - v_scroll->set_val(v_scroll->get_val() - offset.y/zoom); + h_scroll->set_value(h_scroll->get_value() - offset.x/zoom); + v_scroll->set_value(v_scroll->get_value() - offset.y/zoom); } else { // VIEW_FRAME_TO_SELECTION @@ -3192,20 +3200,20 @@ void CanvasItemEditor::_focus_selection(int p_op) { void CanvasItemEditor::_bind_methods() { - ObjectTypeDB::bind_method("_node_removed",&CanvasItemEditor::_node_removed); - ObjectTypeDB::bind_method("_update_scroll",&CanvasItemEditor::_update_scroll); - ObjectTypeDB::bind_method("_popup_callback",&CanvasItemEditor::_popup_callback); - ObjectTypeDB::bind_method("_visibility_changed",&CanvasItemEditor::_visibility_changed); - ObjectTypeDB::bind_method("_dialog_value_changed",&CanvasItemEditor::_dialog_value_changed); - ObjectTypeDB::bind_method("_get_editor_data",&CanvasItemEditor::_get_editor_data); - ObjectTypeDB::bind_method("_tool_select",&CanvasItemEditor::_tool_select); - ObjectTypeDB::bind_method("_keying_changed",&CanvasItemEditor::_keying_changed); - ObjectTypeDB::bind_method("_unhandled_key_input",&CanvasItemEditor::_unhandled_key_input); - ObjectTypeDB::bind_method("_viewport_draw",&CanvasItemEditor::_viewport_draw); - ObjectTypeDB::bind_method("_viewport_input_event",&CanvasItemEditor::_viewport_input_event); - ObjectTypeDB::bind_method("_snap_changed",&CanvasItemEditor::_snap_changed); - ObjectTypeDB::bind_method(_MD("_selection_result_pressed"),&CanvasItemEditor::_selection_result_pressed); - ObjectTypeDB::bind_method(_MD("_selection_menu_hide"),&CanvasItemEditor::_selection_menu_hide); + ClassDB::bind_method("_node_removed",&CanvasItemEditor::_node_removed); + ClassDB::bind_method("_update_scroll",&CanvasItemEditor::_update_scroll); + ClassDB::bind_method("_popup_callback",&CanvasItemEditor::_popup_callback); + ClassDB::bind_method("_visibility_changed",&CanvasItemEditor::_visibility_changed); + ClassDB::bind_method("_dialog_value_changed",&CanvasItemEditor::_dialog_value_changed); + ClassDB::bind_method("_get_editor_data",&CanvasItemEditor::_get_editor_data); + ClassDB::bind_method("_tool_select",&CanvasItemEditor::_tool_select); + ClassDB::bind_method("_keying_changed",&CanvasItemEditor::_keying_changed); + ClassDB::bind_method("_unhandled_key_input",&CanvasItemEditor::_unhandled_key_input); + ClassDB::bind_method("_viewport_draw",&CanvasItemEditor::_viewport_draw); + ClassDB::bind_method("_viewport_gui_input",&CanvasItemEditor::_viewport_gui_input); + ClassDB::bind_method("_snap_changed",&CanvasItemEditor::_snap_changed); + ClassDB::bind_method(_MD("_selection_result_pressed"),&CanvasItemEditor::_selection_result_pressed); + ClassDB::bind_method(_MD("_selection_menu_hide"),&CanvasItemEditor::_selection_menu_hide); ADD_SIGNAL( MethodInfo("item_lock_status_changed") ); ADD_SIGNAL( MethodInfo("item_group_status_changed") ); @@ -3327,7 +3335,8 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { vp_base->set_v_size_flags(SIZE_EXPAND_FILL); palette_split->add_child(vp_base); - Control *vp = memnew (Control); + ViewportContainer *vp = memnew (ViewportContainer); + vp->set_stretch(true); vp_base->add_child(vp); vp->set_area_as_parent_rect(); vp->add_child(p_editor->get_scene_root()); @@ -3336,6 +3345,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { viewport = memnew( CanvasItemEditorViewport(p_editor, this) ); vp_base->add_child(viewport); viewport->set_area_as_parent_rect(); + viewport->set_clip_contents(true); h_scroll = memnew( HScrollBar ); v_scroll = memnew( VScrollBar ); @@ -3343,11 +3353,11 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { viewport->add_child(h_scroll); viewport->add_child(v_scroll); viewport->connect("draw",this,"_viewport_draw"); - viewport->connect("input_event",this,"_viewport_input_event"); + viewport->connect("gui_input",this,"_viewport_gui_input"); - h_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),true); - v_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),true); + h_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),Object::CONNECT_DEFERRED); + v_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),Object::CONNECT_DEFERRED); h_scroll->hide(); v_scroll->hide(); @@ -3428,7 +3438,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { edit_menu = memnew( MenuButton ); edit_menu->set_text(TTR("Edit")); hb->add_child(edit_menu); - edit_menu->get_popup()->connect("item_pressed", this,"_popup_callback"); + edit_menu->get_popup()->connect("id_pressed", this,"_popup_callback"); PopupMenu *p; p = edit_menu->get_popup(); @@ -3453,7 +3463,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { skeleton_menu->add_separator(); skeleton_menu->add_shortcut(ED_SHORTCUT("canvas_item_editor/skeleton_set_ik_chain", TTR("Make IK Chain")), SKELETON_SET_IK_CHAIN); skeleton_menu->add_shortcut(ED_SHORTCUT("canvas_item_editor/skeleton_clear_ik_chain", TTR("Clear IK Chain")), SKELETON_CLEAR_IK_CHAIN); - skeleton_menu->connect("item_pressed", this,"_popup_callback"); + skeleton_menu->connect("id_pressed", this,"_popup_callback"); /* @@ -3465,7 +3475,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { view_menu = memnew( MenuButton ); view_menu->set_text(TTR("View")); hb->add_child(view_menu); - view_menu->get_popup()->connect("item_pressed", this,"_popup_callback"); + view_menu->get_popup()->connect("id_pressed", this,"_popup_callback"); p = view_menu->get_popup(); @@ -3480,7 +3490,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { anchor_menu = memnew( MenuButton ); anchor_menu->set_text(TTR("Anchor")); hb->add_child(anchor_menu); - anchor_menu->get_popup()->connect("item_pressed", this,"_popup_callback"); + anchor_menu->get_popup()->connect("id_pressed", this,"_popup_callback"); anchor_menu->hide(); //p = anchor_menu->get_popup(); @@ -3526,7 +3536,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { animation_menu = memnew( MenuButton ); animation_menu->set_text(TTR("Animation")); animation_hb->add_child(animation_menu); - animation_menu->get_popup()->connect("item_pressed", this,"_popup_callback"); + animation_menu->get_popup()->connect("id_pressed", this,"_popup_callback"); p = animation_menu->get_popup(); @@ -3563,7 +3573,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { selection_menu = memnew( PopupMenu ); add_child(selection_menu); selection_menu->set_custom_minimum_size(Vector2(100, 0)); - selection_menu->connect("item_pressed", this, "_selection_result_pressed"); + selection_menu->connect("id_pressed", this, "_selection_result_pressed"); selection_menu->connect("popup_hide", this, "_selection_menu_hide"); key_pos=true; @@ -3603,7 +3613,7 @@ void CanvasItemEditorPlugin::edit(Object *p_object) { bool CanvasItemEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("CanvasItem"); + return p_object->is_class("CanvasItem"); } void CanvasItemEditorPlugin::make_visible(bool p_visible) { @@ -3611,14 +3621,14 @@ void CanvasItemEditorPlugin::make_visible(bool p_visible) { if (p_visible) { canvas_item_editor->show(); canvas_item_editor->set_fixed_process(true); - VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport(),false); + VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(),false); canvas_item_editor->viewport->grab_focus(); } else { canvas_item_editor->hide(); canvas_item_editor->set_fixed_process(false); - VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport(),true); + VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(),true); } } @@ -3650,7 +3660,7 @@ CanvasItemEditorPlugin::~CanvasItemEditorPlugin() void CanvasItemEditorViewport::_on_mouse_exit() { - if (selector->is_hidden()){ + if (!selector->is_visible()){ _remove_preview(); } } @@ -3663,7 +3673,10 @@ void CanvasItemEditorViewport::_on_select_type(Object* selected) { } void CanvasItemEditorViewport::_on_change_type() { - CheckBox* check=btn_group->get_pressed_button()->cast_to<CheckBox>(); + if (!button_group->get_pressed_button()) + return; + + CheckBox* check=button_group->get_pressed_button()->cast_to<CheckBox>(); default_type=check->get_text(); _perform_drop_data(); selector->hide(); @@ -3675,13 +3688,13 @@ void CanvasItemEditorViewport::_create_preview(const Vector<String>& files) cons for (int i=0;i<files.size();i++) { String path=files[i]; RES res=ResourceLoader::load(path); - String type=res->get_type(); + String type=res->get_class(); if (type=="ImageTexture" || type=="PackedScene") { if (type=="ImageTexture") { Ref<ImageTexture> texture=Ref<ImageTexture> ( ResourceCache::get(path)->cast_to<ImageTexture>() ); Sprite* sprite=memnew(Sprite); sprite->set_texture(texture); - sprite->set_opacity(0.7f); + sprite->set_modulate(Color(1,1,1,0.7f)); preview->add_child(sprite); label->show(); label_desc->show(); @@ -3727,7 +3740,7 @@ bool CanvasItemEditorViewport::_cyclical_dependency_exists(const String& p_targe } void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String& path, const Point2& p_point) { - child->set_name(path.get_file().basename()); + child->set_name(path.get_file().get_basename()); Ref<ImageTexture> texture=Ref<ImageTexture> ( ResourceCache::get(path)->cast_to<ImageTexture>() ); Size2 texture_size = texture->get_size(); @@ -3738,7 +3751,7 @@ void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String& String new_name=parent->validate_child_name(child); ScriptEditorDebugger *sed=ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",editor->get_edited_scene()->get_path_to(parent),child->get_type(),new_name); + editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",editor->get_edited_scene()->get_path_to(parent),child->get_class(),new_name); editor_data->get_undo_redo().add_undo_method(sed,"live_debug_remove_node",NodePath(String(editor->get_edited_scene()->get_path_to(parent))+"/"+new_name)); // handle with different property for texture @@ -3760,10 +3773,10 @@ void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String& editor_data->get_undo_redo().add_do_property(child,property,texture); // make visible for certain node type - if (default_type=="Patch9Frame") { + if (default_type=="Patch9Rect") { editor_data->get_undo_redo().add_do_property(child,"rect/size",texture_size); } else if (default_type=="Polygon2D") { - DVector<Vector2> list; + PoolVector<Vector2> list; list.push_back(Vector2(0,0)); list.push_back(Vector2(texture_size.width,0)); list.push_back(Vector2(texture_size.width,texture_size.height)); @@ -3776,9 +3789,9 @@ void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String& if (parent->has_method("get_global_pos")) { pos=parent->call("get_global_pos"); } - Matrix32 trans=canvas->get_canvas_transform(); + Transform2D trans=canvas->get_canvas_transform(); Point2 target_pos = (p_point-trans.get_origin())/trans.get_scale().x-pos; - if (default_type=="Polygon2D" || default_type=="TouchScreenButton" || default_type=="TextureFrame" || default_type=="Patch9Frame") { + if (default_type=="Polygon2D" || default_type=="TouchScreenButton" || default_type=="TextureRect" || default_type=="Patch9Rect") { target_pos -= texture_size/2; } editor_data->get_undo_redo().add_do_method(child,"set_pos",target_pos); @@ -3790,7 +3803,7 @@ bool CanvasItemEditorViewport::_create_instance(Node* parent, String& path, cons return false; } - Node* instanced_scene=sdata->instance(true); + Node* instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE); if (!instanced_scene) { // error on instancing return false; } @@ -3802,7 +3815,7 @@ bool CanvasItemEditorViewport::_create_instance(Node* parent, String& path, cons } } - instanced_scene->set_filename( Globals::get_singleton()->localize_path(path) ); + instanced_scene->set_filename( GlobalConfig::get_singleton()->localize_path(path) ); editor_data->get_undo_redo().add_do_method(parent,"add_child",instanced_scene); editor_data->get_undo_redo().add_do_method(instanced_scene,"set_owner",editor->get_edited_scene()); @@ -3817,14 +3830,14 @@ bool CanvasItemEditorViewport::_create_instance(Node* parent, String& path, cons Point2 pos; Node2D* parent_node2d=parent->cast_to<Node2D>(); if (parent_node2d) { - pos=parent_node2d->get_global_pos(); + pos=parent_node2d->get_global_position(); } else { Control* parent_control=parent->cast_to<Control>(); if (parent_control) { pos=parent_control->get_global_pos(); } } - Matrix32 trans=canvas->get_canvas_transform(); + Transform2D trans=canvas->get_canvas_transform(); editor_data->get_undo_redo().add_do_method(instanced_scene,"set_pos",(p_point-trans.get_origin())/trans.get_scale().x-pos); return true; @@ -3843,15 +3856,15 @@ void CanvasItemEditorViewport::_perform_drop_data(){ if (res.is_null()) { continue; } - String type=res->get_type(); + String type=res->get_class(); if (type=="ImageTexture") { Node* child; if (default_type=="Light2D") child=memnew(Light2D); else if (default_type=="Particles2D") child=memnew(Particles2D); else if (default_type=="Polygon2D") child=memnew(Polygon2D); else if (default_type=="TouchScreenButton") child=memnew(TouchScreenButton); - else if (default_type=="TextureFrame") child=memnew(TextureFrame); - else if (default_type=="Patch9Frame") child=memnew(Patch9Frame); + else if (default_type=="TextureRect") child=memnew(TextureRect); + else if (default_type=="Patch9Rect") child=memnew(NinePatchRect); else child=memnew(Sprite); // default _create_nodes(target_node, child, path, drop_pos); @@ -3868,7 +3881,7 @@ void CanvasItemEditorViewport::_perform_drop_data(){ if (error_files.size()>0) { String files_str; for (int i=0;i<error_files.size();i++) { - files_str += error_files[i].get_file().basename() + ","; + files_str += error_files[i].get_file().get_basename() + ","; } files_str=files_str.substr(0,files_str.length()-1); accept->get_ok()->set_text(TTR("Ugh")); @@ -3888,10 +3901,10 @@ bool CanvasItemEditorViewport::can_drop_data(const Point2& p_point,const Variant if (res.is_null()) { continue; } - String type=res->get_type(); + String type=res->get_class(); if (type=="PackedScene") { Ref<PackedScene> sdata=ResourceLoader::load(files[i]); - Node* instanced_scene=sdata->instance(true); + Node* instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE); if (!instanced_scene) { continue; } @@ -3904,8 +3917,8 @@ bool CanvasItemEditorViewport::can_drop_data(const Point2& p_point,const Variant if (!preview->get_parent()){ // create preview only once _create_preview(files); } - Matrix32 trans=canvas->get_canvas_transform(); - preview->set_pos((p_point-trans.get_origin())/trans.get_scale().x); + Transform2D trans=canvas->get_canvas_transform(); + preview->set_position((p_point-trans.get_origin())/trans.get_scale().x); label->set_text(vformat(TTR("Adding %s..."),default_type)); } return can_instance; @@ -3949,7 +3962,8 @@ void CanvasItemEditorViewport::drop_data(const Point2& p_point,const Variant& p_ if (is_alt) { List<BaseButton*> btn_list; - btn_group->get_button_list(&btn_list); + button_group->get_buttons(&btn_list); + for (int i=0;i<btn_list.size();i++) { CheckBox* check=btn_list[i]->cast_to<CheckBox>(); check->set_pressed(check->get_text()==default_type); @@ -3963,16 +3977,16 @@ void CanvasItemEditorViewport::drop_data(const Point2& p_point,const Variant& p_ void CanvasItemEditorViewport::_notification(int p_what) { if (p_what==NOTIFICATION_ENTER_TREE) { - connect("mouse_exit",this,"_on_mouse_exit"); + connect("mouse_exited",this,"_on_mouse_exit"); } else if (p_what==NOTIFICATION_EXIT_TREE) { - disconnect("mouse_exit",this,"_on_mouse_exit"); + disconnect("mouse_exited",this,"_on_mouse_exit"); } } void CanvasItemEditorViewport::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_on_select_type"),&CanvasItemEditorViewport::_on_select_type); - ObjectTypeDB::bind_method(_MD("_on_change_type"),&CanvasItemEditorViewport::_on_change_type); - ObjectTypeDB::bind_method(_MD("_on_mouse_exit"),&CanvasItemEditorViewport::_on_mouse_exit); + ClassDB::bind_method(_MD("_on_select_type"),&CanvasItemEditorViewport::_on_select_type); + ClassDB::bind_method(_MD("_on_change_type"),&CanvasItemEditorViewport::_on_change_type); + ClassDB::bind_method(_MD("_on_mouse_exit"),&CanvasItemEditorViewport::_on_mouse_exit); } CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasItemEditor* p_canvas) { @@ -3984,8 +3998,8 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte types.push_back("Polygon2D"); types.push_back("TouchScreenButton"); // Control - types.push_back("TextureFrame"); - types.push_back("Patch9Frame"); + types.push_back("TextureRect"); + types.push_back("Patch9Rect"); target_node=NULL; editor=p_node; @@ -4008,7 +4022,9 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte selector_label->set_custom_minimum_size(Size2(0,30)*EDSCALE); vbc->add_child(selector_label); - btn_group=memnew( ButtonGroup ); + button_group.instance(); + + btn_group=memnew( VBoxContainer ); btn_group->set_h_size_flags(0); btn_group->connect("button_selected", this, "_on_select_type"); @@ -4016,6 +4032,7 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte CheckBox* check=memnew(CheckBox); check->set_text(types[i]); btn_group->add_child(check); + check->set_button_group(button_group); } vbc->add_child(btn_group); diff --git a/tools/editor/plugins/canvas_item_editor_plugin.h b/tools/editor/plugins/canvas_item_editor_plugin.h index bbec078e02..f4f628fe28 100644 --- a/tools/editor/plugins/canvas_item_editor_plugin.h +++ b/tools/editor/plugins/canvas_item_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -46,12 +46,12 @@ class CanvasItemEditorViewport; class CanvasItemEditorSelectedItem : public Object { - OBJ_TYPE(CanvasItemEditorSelectedItem,Object); + GDCLASS(CanvasItemEditorSelectedItem,Object); public: Variant undo_state; Vector2 undo_pivot; - Matrix32 prev_xform; + Transform2D prev_xform; float prev_rot; Rect2 prev_rect; @@ -60,7 +60,7 @@ public: class CanvasItemEditor : public VBoxContainer { - OBJ_TYPE(CanvasItemEditor, VBoxContainer ); + GDCLASS(CanvasItemEditor, VBoxContainer ); EditorNode *editor; @@ -166,7 +166,7 @@ class CanvasItemEditor : public VBoxContainer { VScrollBar *v_scroll; HBoxContainer *hb; - Matrix32 transform; + Transform2D transform; float zoom; Vector2 snap_offset; Vector2 snap_step; @@ -212,7 +212,7 @@ class CanvasItemEditor : public VBoxContainer { struct BoneList { - Matrix32 xform; + Transform2D xform; Vector2 from; Vector2 to; ObjectID bone; @@ -222,7 +222,7 @@ class CanvasItemEditor : public VBoxContainer { uint64_t bone_last_frame; Map<ObjectID,BoneList> bone_list; - Matrix32 bone_orig_xform; + Transform2D bone_orig_xform; struct BoneIK { @@ -300,9 +300,9 @@ class CanvasItemEditor : public VBoxContainer { int handle_len; bool _is_part_of_subscene(CanvasItem *p_item); - CanvasItem* _select_canvas_item_at_pos(const Point2 &p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform); - void _find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform, Vector<_SelectResult> &r_items); - void _find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform,List<CanvasItem*> *r_items); + CanvasItem* _select_canvas_item_at_pos(const Point2 &p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform); + void _find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform, Vector<_SelectResult> &r_items); + void _find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform,List<CanvasItem*> *r_items); bool _select(CanvasItem *item, Point2 p_click_pos, bool p_append, bool p_drag=true); @@ -322,7 +322,7 @@ class CanvasItemEditor : public VBoxContainer { void _key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE p_move_mode); void _list_select(const InputEventMouseButton& b); - DragType _find_drag_type(const Matrix32& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point); + DragType _find_drag_type(const Transform2D& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point); void _popup_callback(int p_op); bool updating_scroll; @@ -342,7 +342,7 @@ class CanvasItemEditor : public VBoxContainer { Point2 _find_topleftmost_point(); - void _find_canvas_items_span(Node *p_node, Rect2& r_rect, const Matrix32& p_xform); + void _find_canvas_items_span(Node *p_node, Rect2& r_rect, const Transform2D& p_xform); Object *_get_editor_data(Object *p_what); @@ -353,7 +353,7 @@ class CanvasItemEditor : public VBoxContainer { void _unhandled_key_input(const InputEvent& p_ev); - void _viewport_input_event(const InputEvent& p_event); + void _viewport_gui_input(const InputEvent& p_event); void _viewport_draw(); void _focus_selection(int p_op); @@ -407,7 +407,7 @@ public: Vector2 snap_point(Vector2 p_target, Vector2 p_start = Vector2(0, 0)) const; float snap_angle(float p_target, float p_start = 0) const; - Matrix32 get_canvas_transform() const { return transform; } + Transform2D get_canvas_transform() const { return transform; } static CanvasItemEditor *get_singleton() { return singleton; } Dictionary get_state() const; @@ -431,7 +431,7 @@ public: class CanvasItemEditorPlugin : public EditorPlugin { - OBJ_TYPE( CanvasItemEditorPlugin, EditorPlugin ); + GDCLASS( CanvasItemEditorPlugin, EditorPlugin ); CanvasItemEditor *canvas_item_editor; EditorNode *editor; @@ -455,7 +455,7 @@ public: }; class CanvasItemEditorViewport : public VBoxContainer { - OBJ_TYPE( CanvasItemEditorViewport, VBoxContainer ); + GDCLASS( CanvasItemEditorViewport, VBoxContainer ); String default_type; Vector<String> types; @@ -473,7 +473,8 @@ class CanvasItemEditorViewport : public VBoxContainer { Label* selector_label; Label* label; Label* label_desc; - ButtonGroup* btn_group; + VBoxContainer* btn_group; + Ref<ButtonGroup> button_group; void _on_mouse_exit(); void _on_select_type(Object* selected); diff --git a/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp b/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp index 95364e8921..263d96ecdf 100644 --- a/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp +++ b/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -99,7 +99,7 @@ void CollisionPolygon2DEditor::_wip_close() { edited_point=-1; } -bool CollisionPolygon2DEditor::forward_input_event(const InputEvent& p_event) { +bool CollisionPolygon2DEditor::forward_gui_input(const InputEvent& p_event) { if (!node) @@ -111,7 +111,7 @@ bool CollisionPolygon2DEditor::forward_input_event(const InputEvent& p_event) { const InputEventMouseButton &mb=p_event.mouse_button; - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Vector2 gpoint = Point2(mb.x,mb.y); @@ -122,7 +122,7 @@ bool CollisionPolygon2DEditor::forward_input_event(const InputEvent& p_event) { Vector<Vector2> poly = node->get_polygon(); //first check if a point is to be added (segment split) - real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8); + real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8); switch(mode) { @@ -346,7 +346,7 @@ void CollisionPolygon2DEditor::_canvas_draw() { poly=node->get_polygon(); - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Ref<Texture> handle= get_icon("EditorHandle","EditorIcons"); for(int i=0;i<poly.size();i++) { @@ -398,9 +398,9 @@ void CollisionPolygon2DEditor::edit(Node *p_collision_polygon) { void CollisionPolygon2DEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_menu_option"),&CollisionPolygon2DEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_canvas_draw"),&CollisionPolygon2DEditor::_canvas_draw); - ObjectTypeDB::bind_method(_MD("_node_removed"),&CollisionPolygon2DEditor::_node_removed); + ClassDB::bind_method(_MD("_menu_option"),&CollisionPolygon2DEditor::_menu_option); + ClassDB::bind_method(_MD("_canvas_draw"),&CollisionPolygon2DEditor::_canvas_draw); + ClassDB::bind_method(_MD("_node_removed"),&CollisionPolygon2DEditor::_node_removed); } @@ -432,7 +432,7 @@ CollisionPolygon2DEditor::CollisionPolygon2DEditor(EditorNode *p_editor) { options->set_area_as_parent_rect(); options->set_text("Polygon"); //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); #endif mode = MODE_EDIT; @@ -448,7 +448,7 @@ void CollisionPolygon2DEditorPlugin::edit(Object *p_object) { bool CollisionPolygon2DEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("CollisionPolygon2D"); + return p_object->is_class("CollisionPolygon2D"); } void CollisionPolygon2DEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/collision_polygon_2d_editor_plugin.h b/tools/editor/plugins/collision_polygon_2d_editor_plugin.h index 431d3651c1..2c573c1dcf 100644 --- a/tools/editor/plugins/collision_polygon_2d_editor_plugin.h +++ b/tools/editor/plugins/collision_polygon_2d_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -43,7 +43,7 @@ class CanvasItemEditor; class CollisionPolygon2DEditor : public HBoxContainer { - OBJ_TYPE(CollisionPolygon2DEditor, HBoxContainer ); + GDCLASS(CollisionPolygon2DEditor, HBoxContainer ); UndoRedo *undo_redo; enum Mode { @@ -81,21 +81,21 @@ protected: static void _bind_methods(); public: - bool forward_input_event(const InputEvent& p_event); + bool forward_gui_input(const InputEvent& p_event); void edit(Node *p_collision_polygon); CollisionPolygon2DEditor(EditorNode *p_editor); }; class CollisionPolygon2DEditorPlugin : public EditorPlugin { - OBJ_TYPE( CollisionPolygon2DEditorPlugin, EditorPlugin ); + GDCLASS( CollisionPolygon2DEditorPlugin, EditorPlugin ); CollisionPolygon2DEditor *collision_polygon_editor; EditorNode *editor; public: - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); } + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); } virtual String get_name() const { return "CollisionPolygon2D"; } bool has_main_screen() const { return false; } diff --git a/tools/editor/plugins/collision_polygon_editor_plugin.cpp b/tools/editor/plugins/collision_polygon_editor_plugin.cpp index 0b06b3ba21..c5cd15cf72 100644 --- a/tools/editor/plugins/collision_polygon_editor_plugin.cpp +++ b/tools/editor/plugins/collision_polygon_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,12 +27,15 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "collision_polygon_editor_plugin.h" + #include "spatial_editor_plugin.h" #include "os/file_access.h" #include "tools/editor/editor_settings.h" #include "scene/3d/camera.h" #include "canvas_item_editor_plugin.h" +#if 0 + void CollisionPolygonEditor::_notification(int p_what) { switch(p_what) { @@ -107,7 +110,7 @@ void CollisionPolygonEditor::_wip_close() { } -bool CollisionPolygonEditor::forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) { +bool CollisionPolygonEditor::forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) { if (!node) return false; @@ -145,7 +148,7 @@ bool CollisionPolygonEditor::forward_spatial_input_event(Camera* p_camera,const Vector<Vector2> poly = node->get_polygon(); //first check if a point is to be added (segment split) - real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8); + real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8); switch(mode) { @@ -476,11 +479,11 @@ void CollisionPolygonEditor::_polygon_draw() { Array a; a.resize(Mesh::ARRAY_MAX); - DVector<Vector3> va; + PoolVector<Vector3> va; { va.resize(poly.size()); - DVector<Vector3>::Write w=va.write(); + PoolVector<Vector3>::Write w=va.write(); for(int i=0;i<poly.size();i++) { @@ -527,9 +530,9 @@ void CollisionPolygonEditor::edit(Node *p_collision_polygon) { void CollisionPolygonEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_menu_option"),&CollisionPolygonEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_polygon_draw"),&CollisionPolygonEditor::_polygon_draw); - ObjectTypeDB::bind_method(_MD("_node_removed"),&CollisionPolygonEditor::_node_removed); + ClassDB::bind_method(_MD("_menu_option"),&CollisionPolygonEditor::_menu_option); + ClassDB::bind_method(_MD("_polygon_draw"),&CollisionPolygonEditor::_polygon_draw); + ClassDB::bind_method(_MD("_node_removed"),&CollisionPolygonEditor::_node_removed); } @@ -559,7 +562,7 @@ CollisionPolygonEditor::CollisionPolygonEditor(EditorNode *p_editor) { options->set_area_as_parent_rect(); options->set_text("Polygon"); //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); #endif mode = MODE_EDIT; @@ -568,25 +571,25 @@ CollisionPolygonEditor::CollisionPolygonEditor(EditorNode *p_editor) { imgeom->set_transform(Transform(Matrix3(),Vector3(0,0,0.00001))); - line_material = Ref<FixedMaterial>( memnew( FixedMaterial )); + line_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); line_material->set_flag(Material::FLAG_UNSHADED, true); line_material->set_line_width(3.0); - line_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - line_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true); - line_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1)); + line_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true); + line_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY, true); + line_material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,Color(1,1,1)); - handle_material = Ref<FixedMaterial>( memnew( FixedMaterial )); + handle_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); handle_material->set_flag(Material::FLAG_UNSHADED, true); - handle_material->set_fixed_flag(FixedMaterial::FLAG_USE_POINT_SIZE, true); - handle_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1)); - handle_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - handle_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, false); + handle_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_POINT_SIZE, true); + handle_material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,Color(1,1,1)); + handle_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true); + handle_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY, false); Ref<Texture> handle=editor->get_gui_base()->get_icon("Editor3DHandle","EditorIcons"); handle_material->set_point_size(handle->get_width()); - handle_material->set_texture(FixedMaterial::PARAM_DIFFUSE,handle); + handle_material->set_texture(FixedSpatialMaterial::PARAM_DIFFUSE,handle); pointsm = memnew( MeshInstance ); imgeom->add_child(pointsm); @@ -642,3 +645,4 @@ CollisionPolygonEditorPlugin::~CollisionPolygonEditorPlugin() { } +#endif diff --git a/tools/editor/plugins/collision_polygon_editor_plugin.h b/tools/editor/plugins/collision_polygon_editor_plugin.h index 45e287ef00..cd722048db 100644 --- a/tools/editor/plugins/collision_polygon_editor_plugin.h +++ b/tools/editor/plugins/collision_polygon_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,11 +40,13 @@ /** @author Juan Linietsky <reduzio@gmail.com> */ + +#if 0 class CanvasItemEditor; class CollisionPolygonEditor : public HBoxContainer { - OBJ_TYPE(CollisionPolygonEditor, HBoxContainer ); + GDCLASS(CollisionPolygonEditor, HBoxContainer ); UndoRedo *undo_redo; enum Mode { @@ -60,8 +62,8 @@ class CollisionPolygonEditor : public HBoxContainer { ToolButton *button_edit; - Ref<FixedMaterial> line_material; - Ref<FixedMaterial> handle_material; + Ref<FixedSpatialMaterial> line_material; + Ref<FixedSpatialMaterial> handle_material; EditorNode *editor; Panel *panel; @@ -90,7 +92,7 @@ protected: static void _bind_methods(); public: - virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event); + virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event); void edit(Node *p_collision_polygon); CollisionPolygonEditor(EditorNode *p_editor); ~CollisionPolygonEditor(); @@ -98,14 +100,14 @@ public: class CollisionPolygonEditorPlugin : public EditorPlugin { - OBJ_TYPE( CollisionPolygonEditorPlugin, EditorPlugin ); + GDCLASS( CollisionPolygonEditorPlugin, EditorPlugin ); CollisionPolygonEditor *collision_polygon_editor; EditorNode *editor; public: - virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) { return collision_polygon_editor->forward_spatial_input_event(p_camera,p_event); } + virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) { return collision_polygon_editor->forward_spatial_gui_input(p_camera,p_event); } virtual String get_name() const { return "CollisionPolygon"; } bool has_main_screen() const { return false; } @@ -117,5 +119,5 @@ public: ~CollisionPolygonEditorPlugin(); }; - +#endif #endif // COLLISION_POLYGON_EDITOR_PLUGIN_H diff --git a/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp b/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp index d0cd73dcad..a05eeb7a27 100644 --- a/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp +++ b/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,7 +29,6 @@ #include "collision_shape_2d_editor_plugin.h" #include "canvas_item_editor_plugin.h" - #include "scene/resources/segment_shape_2d.h" #include "scene/resources/shape_line_2d.h" #include "scene/resources/circle_shape_2d.h" @@ -303,7 +302,7 @@ void CollisionShape2DEditor::commit_handle(int idx, Variant& p_org) { undo_redo->commit_action(); } -bool CollisionShape2DEditor::forward_input_event(const InputEvent& p_event) { +bool CollisionShape2DEditor::forward_gui_input(const InputEvent& p_event) { if (!node) { return false; @@ -321,7 +320,7 @@ bool CollisionShape2DEditor::forward_input_event(const InputEvent& p_event) { case InputEvent::MOUSE_BUTTON: { const InputEventMouseButton& mb = p_event.mouse_button; - Matrix32 gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Point2 gpoint(mb.x,mb.y); @@ -436,7 +435,7 @@ void CollisionShape2DEditor::_canvas_draw() { } Control *c = canvas_item_editor->get_viewport_control(); - Matrix32 gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Ref<Texture> h = get_icon("EditorHandle","EditorIcons"); Vector2 size = h->get_size()*0.5; @@ -555,8 +554,8 @@ void CollisionShape2DEditor::edit(Node* p_node) { void CollisionShape2DEditor::_bind_methods() { - ObjectTypeDB::bind_method("_canvas_draw",&CollisionShape2DEditor::_canvas_draw); - ObjectTypeDB::bind_method("_get_current_shape_type",&CollisionShape2DEditor::_get_current_shape_type); + ClassDB::bind_method("_canvas_draw",&CollisionShape2DEditor::_canvas_draw); + ClassDB::bind_method("_get_current_shape_type",&CollisionShape2DEditor::_get_current_shape_type); } CollisionShape2DEditor::CollisionShape2DEditor(EditorNode* p_editor) { @@ -578,7 +577,7 @@ void CollisionShape2DEditorPlugin::edit(Object* p_obj) { bool CollisionShape2DEditorPlugin::handles(Object* p_obj) const { - return p_obj->is_type("CollisionShape2D"); + return p_obj->is_class("CollisionShape2D"); } void CollisionShape2DEditorPlugin::make_visible(bool visible) { diff --git a/tools/editor/plugins/collision_shape_2d_editor_plugin.h b/tools/editor/plugins/collision_shape_2d_editor_plugin.h index a8930dc0f2..37708db5e0 100644 --- a/tools/editor/plugins/collision_shape_2d_editor_plugin.h +++ b/tools/editor/plugins/collision_shape_2d_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ class CanvasItemEditor; class CollisionShape2DEditor : public Control { - OBJ_TYPE(CollisionShape2DEditor, Control); + GDCLASS(CollisionShape2DEditor, Control); enum ShapeType { CAPSULE_SHAPE, @@ -73,20 +73,20 @@ protected: static void _bind_methods(); public: - bool forward_input_event(const InputEvent& p_event); + bool forward_gui_input(const InputEvent& p_event); void edit(Node* p_node); CollisionShape2DEditor(EditorNode* p_editor); }; class CollisionShape2DEditorPlugin : public EditorPlugin { - OBJ_TYPE(CollisionShape2DEditorPlugin, EditorPlugin); + GDCLASS(CollisionShape2DEditorPlugin, EditorPlugin); CollisionShape2DEditor* collision_shape_2d_editor; EditorNode* editor; public: - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_shape_2d_editor->forward_input_event(p_event); } + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_shape_2d_editor->forward_gui_input(p_event); } virtual String get_name() const { return "CollisionShape2D"; } bool has_main_screen() const { return false; } diff --git a/tools/editor/plugins/color_ramp_editor_plugin.cpp b/tools/editor/plugins/color_ramp_editor_plugin.cpp index 4e2045edc6..9509eb1b03 100644 --- a/tools/editor/plugins/color_ramp_editor_plugin.cpp +++ b/tools/editor/plugins/color_ramp_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "color_ramp_editor_plugin.h" + #include "spatial_editor_plugin.h" #include "canvas_item_editor_plugin.h" @@ -54,7 +55,7 @@ void ColorRampEditorPlugin::edit(Object *p_object) { bool ColorRampEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("ColorRamp"); + return p_object->is_class("ColorRamp"); } @@ -75,7 +76,7 @@ void ColorRampEditorPlugin::_ramp_changed() { UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo(); - //Not sure if I should convert this data to DVector + //Not sure if I should convert this data to PoolVector Vector<float> new_offsets=ramp_editor->get_offsets(); Vector<Color> new_colors=ramp_editor->get_colors(); Vector<float> old_offsets=color_ramp_ref->get_offsets(); @@ -106,6 +107,6 @@ ColorRampEditorPlugin::~ColorRampEditorPlugin(){ } void ColorRampEditorPlugin::_bind_methods() { - ObjectTypeDB::bind_method(_MD("ramp_changed"),&ColorRampEditorPlugin::_ramp_changed); - ObjectTypeDB::bind_method(_MD("undo_redo_color_ramp","offsets","colors"),&ColorRampEditorPlugin::_undo_redo_color_ramp); + ClassDB::bind_method(_MD("ramp_changed"),&ColorRampEditorPlugin::_ramp_changed); + ClassDB::bind_method(_MD("undo_redo_color_ramp","offsets","colors"),&ColorRampEditorPlugin::_undo_redo_color_ramp); } diff --git a/tools/editor/plugins/color_ramp_editor_plugin.h b/tools/editor/plugins/color_ramp_editor_plugin.h index 300a9030b9..2f55ad65f1 100644 --- a/tools/editor/plugins/color_ramp_editor_plugin.h +++ b/tools/editor/plugins/color_ramp_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,7 +35,7 @@ class ColorRampEditorPlugin : public EditorPlugin { - OBJ_TYPE( ColorRampEditorPlugin, EditorPlugin ); + GDCLASS( ColorRampEditorPlugin, EditorPlugin ); bool _2d; Ref<ColorRamp> color_ramp_ref; diff --git a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp index b6f3db73f7..563b8298eb 100644 --- a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp +++ b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,6 +28,7 @@ /*************************************************************************/ #include "cube_grid_theme_editor_plugin.h" +#if 0 #include "scene/3d/mesh_instance.h" #include "scene/3d/physics_body.h" #include "scene/main/viewport.h" @@ -150,8 +151,8 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library, VS::ViewportRect vr; vr.x=0; vr.y=0; - vr.width=EditorSettings::get_singleton()->get("grid_map/preview_size"); - vr.height=EditorSettings::get_singleton()->get("grid_map/preview_size"); + vr.width=EditorSettings::get_singleton()->get("editors/grid_map/preview_size"); + vr.height=EditorSettings::get_singleton()->get("editors/grid_map/preview_size"); VS::get_singleton()->viewport_set_rect(vp,vr); VS::get_singleton()->viewport_set_as_render_target(vp,true); VS::get_singleton()->viewport_set_render_target_update_mode(vp,VS::RENDER_TARGET_UPDATE_ALWAYS); @@ -178,8 +179,8 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library, Vector3 ofs = aabb.pos + aabb.size*0.5; aabb.pos-=ofs; Transform xform; - xform.basis=Matrix3().rotated(Vector3(0,1,0),Math_PI*0.25); - xform.basis = Matrix3().rotated(Vector3(1,0,0),-Math_PI*0.25)*xform.basis; + xform.basis=Matrix3().rotated(Vector3(0,1,0),-Math_PI*0.25); + xform.basis = Matrix3().rotated(Vector3(1,0,0),Math_PI*0.25)*xform.basis; AABB rot_aabb = xform.xform(aabb); print_line("rot_aabb: "+rot_aabb); float m = MAX(rot_aabb.size.x,rot_aabb.size.y)*0.5; @@ -202,7 +203,7 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library, it->create_from_image(img); p_library->set_item_preview(id,it); -// print_line("loaded image, size: "+rtos(m)+" dist: "+rtos(dist)+" empty?"+itos(img.empty())+" w: "+itos(it->get_width())+" h: "+itos(it->get_height())); + //print_line("loaded image, size: "+rtos(m)+" dist: "+rtos(dist)+" empty?"+itos(img.empty())+" w: "+itos(it->get_width())+" h: "+itos(it->get_height())); VS::get_singleton()->free(inst); } @@ -275,9 +276,9 @@ void MeshLibraryEditor::_menu_cbk(int p_option) { void MeshLibraryEditor::_bind_methods() { - ObjectTypeDB::bind_method("_menu_cbk",&MeshLibraryEditor::_menu_cbk); - ObjectTypeDB::bind_method("_menu_confirm",&MeshLibraryEditor::_menu_confirm); - ObjectTypeDB::bind_method("_import_scene_cbk",&MeshLibraryEditor::_import_scene_cbk); + ClassDB::bind_method("_menu_cbk",&MeshLibraryEditor::_menu_cbk); + ClassDB::bind_method("_menu_confirm",&MeshLibraryEditor::_menu_confirm); + ClassDB::bind_method("_import_scene_cbk",&MeshLibraryEditor::_import_scene_cbk); } MeshLibraryEditor::MeshLibraryEditor(EditorNode *p_editor) { @@ -309,7 +310,7 @@ MeshLibraryEditor::MeshLibraryEditor(EditorNode *p_editor) { options->get_popup()->add_item(TTR("Import from Scene"),MENU_OPTION_IMPORT_FROM_SCENE); options->get_popup()->add_item(TTR("Update from Scene"),MENU_OPTION_UPDATE_FROM_SCENE); options->get_popup()->set_item_disabled(options->get_popup()->get_item_index(MENU_OPTION_UPDATE_FROM_SCENE),true); - options->get_popup()->connect("item_pressed", this,"_menu_cbk"); + options->get_popup()->connect("id_pressed", this,"_menu_cbk"); menu=options; editor=p_editor; cd = memnew(ConfirmationDialog); @@ -342,7 +343,7 @@ void MeshLibraryEditorPlugin::make_visible(bool p_visible){ MeshLibraryEditorPlugin::MeshLibraryEditorPlugin(EditorNode *p_node) { - EDITOR_DEF("grid_map/preview_size",64); + EDITOR_DEF("editors/grid_map/preview_size",64); theme_editor = memnew( MeshLibraryEditor(p_node) ); p_node->get_viewport()->add_child(theme_editor); @@ -353,4 +354,4 @@ MeshLibraryEditorPlugin::MeshLibraryEditorPlugin(EditorNode *p_node) { theme_editor->hide(); } - +#endif diff --git a/tools/editor/plugins/cube_grid_theme_editor_plugin.h b/tools/editor/plugins/cube_grid_theme_editor_plugin.h index 72ee171e19..f32f601023 100644 --- a/tools/editor/plugins/cube_grid_theme_editor_plugin.h +++ b/tools/editor/plugins/cube_grid_theme_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -32,10 +32,10 @@ #include "scene/resources/mesh_library.h" #include "tools/editor/editor_node.h" - +#if 0 class MeshLibraryEditor : public Control { - OBJ_TYPE( MeshLibraryEditor, Control ); + GDCLASS( MeshLibraryEditor, Control ); Ref<MeshLibrary> theme; @@ -74,7 +74,7 @@ public: class MeshLibraryEditorPlugin : public EditorPlugin { - OBJ_TYPE( MeshLibraryEditorPlugin, EditorPlugin ); + GDCLASS( MeshLibraryEditorPlugin, EditorPlugin ); MeshLibraryEditor *theme_editor; EditorNode *editor; @@ -93,3 +93,4 @@ public: #endif // CUBE_GRID_THEME_EDITOR_PLUGIN_H +#endif diff --git a/tools/editor/plugins/editor_preview_plugins.cpp b/tools/editor/plugins/editor_preview_plugins.cpp index b1bce60484..5d9b281874 100644 --- a/tools/editor/plugins/editor_preview_plugins.cpp +++ b/tools/editor/plugins/editor_preview_plugins.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,19 +27,21 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_preview_plugins.h" + #include "io/resource_loader.h" #include "tools/editor/editor_settings.h" #include "io/file_access_memory.h" #include "os/os.h" #include "scene/resources/material.h" -#include "scene/resources/sample.h" +//#include "scene/resources/sample.h" #include "scene/resources/mesh.h" #include "scene/resources/bit_mask.h" #include "tools/editor/editor_scale.h" +#if 0 bool EditorTexturePreviewPlugin::handles(const String& p_type) const { - return (ObjectTypeDB::is_type(p_type,"ImageTexture") || ObjectTypeDB::is_type(p_type, "AtlasTexture")); + return (ClassDB::is_type(p_type,"ImageTexture") || ClassDB::is_type(p_type, "AtlasTexture")); } Ref<Texture> EditorTexturePreviewPlugin::generate(const RES& p_from) { @@ -64,13 +66,13 @@ Ref<Texture> EditorTexturePreviewPlugin::generate(const RES& p_from) { img.clear_mipmaps(); - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; if (img.is_compressed()) { if (img.decompress()!=OK) return Ref<Texture>(); - } else if (img.get_format()!=Image::FORMAT_RGB && img.get_format()!=Image::FORMAT_RGBA) { - img.convert(Image::FORMAT_RGBA); + } else if (img.get_format()!=Image::FORMAT_RGB8 && img.get_format()!=Image::FORMAT_RGBA8) { + img.convert(Image::FORMAT_RGBA8); } int width,height; @@ -106,7 +108,7 @@ EditorTexturePreviewPlugin::EditorTexturePreviewPlugin() { bool EditorBitmapPreviewPlugin::handles(const String& p_type) const { - return ObjectTypeDB::is_type(p_type,"BitMap"); + return ClassDB::is_type(p_type,"BitMap"); } Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES& p_from) { @@ -117,12 +119,12 @@ Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES& p_from) { return Ref<Texture>(); } - DVector<uint8_t> data; + PoolVector<uint8_t> data; data.resize(bm->get_size().width*bm->get_size().height); { - DVector<uint8_t>::Write w=data.write(); + PoolVector<uint8_t>::Write w=data.write(); for(int i=0;i<bm->get_size().width;i++) { for(int j=0;j<bm->get_size().height;j++) { @@ -138,15 +140,15 @@ Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES& p_from) { } - Image img(bm->get_size().width,bm->get_size().height,0,Image::FORMAT_GRAYSCALE,data); + Image img(bm->get_size().width,bm->get_size().height,0,Image::FORMAT_L8,data); - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; if (img.is_compressed()) { if (img.decompress()!=OK) return Ref<Texture>(); - } else if (img.get_format()!=Image::FORMAT_RGB && img.get_format()!=Image::FORMAT_RGBA) { - img.convert(Image::FORMAT_RGBA); + } else if (img.get_format()!=Image::FORMAT_RGB8 && img.get_format()!=Image::FORMAT_RGBA8) { + img.convert(Image::FORMAT_RGBA8); } int width,height; @@ -192,14 +194,14 @@ Ref<Texture> EditorPackedScenePreviewPlugin::_gen_from_imd(Ref<ResourceImportMet Variant tn = p_imd->get_option("thumbnail"); //print_line(Variant::get_type_name(tn.get_type())); - DVector<uint8_t> thumbnail = tn; + PoolVector<uint8_t> thumbnail = tn; int len = thumbnail.size(); if (len==0) return Ref<Texture>(); - DVector<uint8_t>::Read r = thumbnail.read(); + PoolVector<uint8_t>::Read r = thumbnail.read(); Image img(r.ptr(),len); if (img.empty()) @@ -213,7 +215,7 @@ Ref<Texture> EditorPackedScenePreviewPlugin::_gen_from_imd(Ref<ResourceImportMet bool EditorPackedScenePreviewPlugin::handles(const String& p_type) const { - return ObjectTypeDB::is_type(p_type,"PackedScene"); + return ClassDB::is_type(p_type,"PackedScene"); } Ref<Texture> EditorPackedScenePreviewPlugin::generate(const RES& p_from) { @@ -235,7 +237,7 @@ EditorPackedScenePreviewPlugin::EditorPackedScenePreviewPlugin() { bool EditorMaterialPreviewPlugin::handles(const String& p_type) const { - return ObjectTypeDB::is_type(p_type,"Material"); //any material + return ClassDB::is_type(p_type,"Material"); //any material } Ref<Texture> EditorMaterialPreviewPlugin::generate(const RES& p_from) { @@ -247,7 +249,7 @@ Ref<Texture> EditorMaterialPreviewPlugin::generate(const RES& p_from) { VS::get_singleton()->viewport_queue_screen_capture(viewport); VS::get_singleton()->viewport_set_render_target_update_mode(viewport,VS::RENDER_TARGET_UPDATE_ONCE); //once used for capture -// print_line("queue capture!"); + //print_line("queue capture!"); Image img; int timeout=1000; @@ -263,7 +265,7 @@ Ref<Texture> EditorMaterialPreviewPlugin::generate(const RES& p_from) { //print_line("captured!"); VS::get_singleton()->mesh_surface_set_material(sphere,0,RID()); - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; img.resize(thumbnail_size,thumbnail_size); @@ -310,10 +312,10 @@ EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() { int lons=32; float radius=1.0; - DVector<Vector3> vertices; - DVector<Vector3> normals; - DVector<Vector2> uvs; - DVector<float> tangents; + PoolVector<Vector3> vertices; + PoolVector<Vector3> normals; + PoolVector<Vector2> uvs; + PoolVector<float> tangents; Matrix3 tt = Matrix3(Vector3(0,1,0),Math_PI*0.5); for(int i = 1; i <= lats; i++) { @@ -404,7 +406,7 @@ static bool _is_text_char(CharType c) { bool EditorScriptPreviewPlugin::handles(const String& p_type) const { - return ObjectTypeDB::is_type(p_type,"Script"); + return ClassDB::is_type(p_type,"Script"); } Ref<Texture> EditorScriptPreviewPlugin::generate(const RES& p_from) { @@ -432,17 +434,17 @@ Ref<Texture> EditorScriptPreviewPlugin::generate(const RES& p_from) { int line = 0; int col=0; - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; - Image img(thumbnail_size,thumbnail_size,0,Image::FORMAT_RGBA); + Image img(thumbnail_size,thumbnail_size,0,Image::FORMAT_RGBA8); - Color bg_color = EditorSettings::get_singleton()->get("text_editor/background_color"); + Color bg_color = EditorSettings::get_singleton()->get("text_editor/highlighting/background_color"); bg_color.a=1.0; - Color keyword_color = EditorSettings::get_singleton()->get("text_editor/keyword_color"); - Color text_color = EditorSettings::get_singleton()->get("text_editor/text_color"); - Color symbol_color = EditorSettings::get_singleton()->get("text_editor/symbol_color"); + Color keyword_color = EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"); + Color text_color = EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"); + Color symbol_color = EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"); for(int i=0;i<thumbnail_size;i++) { @@ -520,10 +522,10 @@ EditorScriptPreviewPlugin::EditorScriptPreviewPlugin() { } /////////////////////////////////////////////////////////////////// - +#if 0 bool EditorSamplePreviewPlugin::handles(const String& p_type) const { - return ObjectTypeDB::is_type(p_type,"Sample"); + return ClassDB::is_type(p_type,"Sample"); } Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) { @@ -532,17 +534,17 @@ Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) { ERR_FAIL_COND_V(smp.is_null(),Ref<Texture>()); - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; - DVector<uint8_t> img; + PoolVector<uint8_t> img; int w = thumbnail_size; int h = thumbnail_size; img.resize(w*h*3); - DVector<uint8_t>::Write imgdata = img.write(); + PoolVector<uint8_t>::Write imgdata = img.write(); uint8_t * imgw = imgdata.ptr(); - DVector<uint8_t> data = smp->get_data(); - DVector<uint8_t>::Read sampledata = data.read(); + PoolVector<uint8_t> data = smp->get_data(); + PoolVector<uint8_t>::Read sampledata = data.read(); const uint8_t *sdata=sampledata.ptr(); bool stereo = smp->is_stereo(); @@ -775,10 +777,10 @@ Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) { } } - imgdata = DVector<uint8_t>::Write(); + imgdata = PoolVector<uint8_t>::Write(); Ref<ImageTexture> ptex = Ref<ImageTexture>( memnew( ImageTexture)); - ptex->create_from_image(Image(w,h,0,Image::FORMAT_RGB,img),0); + ptex->create_from_image(Image(w,h,0,Image::FORMAT_RGB8,img),0); return ptex; } @@ -787,12 +789,12 @@ EditorSamplePreviewPlugin::EditorSamplePreviewPlugin() { } - +#endif /////////////////////////////////////////////////////////////////////////// bool EditorMeshPreviewPlugin::handles(const String& p_type) const { - return ObjectTypeDB::is_type(p_type,"Mesh"); //any Mesh + return ClassDB::is_type(p_type,"Mesh"); //any Mesh } Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) { @@ -806,8 +808,8 @@ Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) { Vector3 ofs = aabb.pos + aabb.size*0.5; aabb.pos-=ofs; Transform xform; - xform.basis=Matrix3().rotated(Vector3(0,1,0),Math_PI*0.125); - xform.basis = Matrix3().rotated(Vector3(1,0,0),-Math_PI*0.125)*xform.basis; + xform.basis=Matrix3().rotated(Vector3(0,1,0),-Math_PI*0.125); + xform.basis = Matrix3().rotated(Vector3(1,0,0),Math_PI*0.125)*xform.basis; AABB rot_aabb = xform.xform(aabb); float m = MAX(rot_aabb.size.x,rot_aabb.size.y)*0.5; if (m==0) @@ -824,7 +826,7 @@ Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) { VS::get_singleton()->viewport_queue_screen_capture(viewport); VS::get_singleton()->viewport_set_render_target_update_mode(viewport,VS::RENDER_TARGET_UPDATE_ONCE); //once used for capture -// print_line("queue capture!"); + //print_line("queue capture!"); Image img; int timeout=1000; @@ -840,7 +842,7 @@ Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) { //print_line("captured!"); VS::get_singleton()->instance_set_base(mesh_instance,RID()); - int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size"); + int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size"); thumbnail_size*=EDSCALE; img.resize(thumbnail_size,thumbnail_size); @@ -866,7 +868,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() { camera = VS::get_singleton()->camera_create(); VS::get_singleton()->viewport_attach_camera(viewport,camera); VS::get_singleton()->camera_set_transform(camera,Transform(Matrix3(),Vector3(0,0,3))); -// VS::get_singleton()->camera_set_perspective(camera,45,0.1,10); + //VS::get_singleton()->camera_set_perspective(camera,45,0.1,10); VS::get_singleton()->camera_set_orthogonal(camera,1.0,0.01,1000.0); light = VS::get_singleton()->light_create(VS::LIGHT_DIRECTIONAL); @@ -880,7 +882,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() { VS::get_singleton()->instance_set_transform(light_instance2,Transform().looking_at(Vector3(0,1,0),Vector3(0,0,1))); -// sphere = VS::get_singleton()->mesh_create(); + //sphere = VS::get_singleton()->mesh_create(); mesh_instance = VS::get_singleton()->instance_create(); VS::get_singleton()->instance_set_scenario(mesh_instance,scenario); @@ -888,6 +890,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() { } + EditorMeshPreviewPlugin::~EditorMeshPreviewPlugin() { //VS::get_singleton()->free(sphere); @@ -901,3 +904,4 @@ EditorMeshPreviewPlugin::~EditorMeshPreviewPlugin() { VS::get_singleton()->free(scenario); } +#endif diff --git a/tools/editor/plugins/editor_preview_plugins.h b/tools/editor/plugins/editor_preview_plugins.h index b33aefaa23..078e4cf8b5 100644 --- a/tools/editor/plugins/editor_preview_plugins.h +++ b/tools/editor/plugins/editor_preview_plugins.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -31,6 +31,7 @@ #include "tools/editor/editor_resource_preview.h" +#if 0 class EditorTexturePreviewPlugin : public EditorResourcePreviewGenerator { public: @@ -93,7 +94,7 @@ public: EditorScriptPreviewPlugin(); }; - +#if 0 class EditorSamplePreviewPlugin : public EditorResourcePreviewGenerator { public: @@ -103,7 +104,7 @@ public: EditorSamplePreviewPlugin(); }; - +#endif class EditorMeshPreviewPlugin : public EditorResourcePreviewGenerator { RID scenario; @@ -123,5 +124,5 @@ public: ~EditorMeshPreviewPlugin(); }; - +#endif #endif // EDITORPREVIEWPLUGINS_H diff --git a/tools/editor/plugins/gi_probe_editor_plugin.cpp b/tools/editor/plugins/gi_probe_editor_plugin.cpp new file mode 100644 index 0000000000..39f32d0dc7 --- /dev/null +++ b/tools/editor/plugins/gi_probe_editor_plugin.cpp @@ -0,0 +1,85 @@ +/*************************************************************************/ +/* gi_probe_editor_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#include "gi_probe_editor_plugin.h" + + +void GIProbeEditorPlugin::_bake() { + + if (gi_probe) { + gi_probe->bake(); + } +} + + +void GIProbeEditorPlugin::edit(Object *p_object) { + + GIProbe * s = p_object->cast_to<GIProbe>(); + if (!s) + return; + + gi_probe=s; +} + +bool GIProbeEditorPlugin::handles(Object *p_object) const { + + return p_object->is_class("GIProbe"); +} + +void GIProbeEditorPlugin::make_visible(bool p_visible) { + + if (p_visible) { + bake->show(); + } else { + + bake->hide(); + } + +} + +void GIProbeEditorPlugin::_bind_methods() { + + ClassDB::bind_method("_bake",&GIProbeEditorPlugin::_bake); +} + +GIProbeEditorPlugin::GIProbeEditorPlugin(EditorNode *p_node) { + + editor=p_node; + bake = memnew( Button ); + bake->set_icon(editor->get_gui_base()->get_icon("BakedLight","EditorIcons")); + bake->hide(); + bake->connect("pressed",this,"_bake"); + add_control_to_container(CONTAINER_SPATIAL_EDITOR_MENU,bake); + gi_probe=NULL; +} + + +GIProbeEditorPlugin::~GIProbeEditorPlugin() { + + memdelete(bake); +} diff --git a/tools/editor/plugins/gi_probe_editor_plugin.h b/tools/editor/plugins/gi_probe_editor_plugin.h new file mode 100644 index 0000000000..35e0b93aae --- /dev/null +++ b/tools/editor/plugins/gi_probe_editor_plugin.h @@ -0,0 +1,65 @@ +/*************************************************************************/ +/* gi_probe_editor_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#ifndef GIPROBEEDITORPLUGIN_H +#define GIPROBEEDITORPLUGIN_H + +#include "tools/editor/editor_plugin.h" +#include "tools/editor/editor_node.h" +#include "scene/resources/material.h" +#include "scene/3d/gi_probe.h" + + + +class GIProbeEditorPlugin : public EditorPlugin { + + GDCLASS( GIProbeEditorPlugin, EditorPlugin ); + + GIProbe *gi_probe; + + Button *bake; + EditorNode *editor; + + void _bake(); +protected: + + static void _bind_methods(); +public: + + virtual String get_name() const { return "GIProbe"; } + bool has_main_screen() const { return false; } + virtual void edit(Object *p_node); + virtual bool handles(Object *p_node) const; + virtual void make_visible(bool p_visible); + + GIProbeEditorPlugin(EditorNode *p_node); + ~GIProbeEditorPlugin(); + +}; + +#endif // GIPROBEEDITORPLUGIN_H diff --git a/tools/editor/plugins/item_list_editor_plugin.cpp b/tools/editor/plugins/item_list_editor_plugin.cpp index b711e13193..f31074a9dc 100644 --- a/tools/editor/plugins/item_list_editor_plugin.cpp +++ b/tools/editor/plugins/item_list_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -119,7 +119,7 @@ void ItemListOptionButtonPlugin::set_object(Object *p_object) { bool ItemListOptionButtonPlugin::handles(Object *p_object) const { - return p_object->is_type("OptionButton"); + return p_object->is_class("OptionButton"); } int ItemListOptionButtonPlugin::get_flags() const { @@ -153,7 +153,7 @@ ItemListOptionButtonPlugin::ItemListOptionButtonPlugin() { void ItemListPopupMenuPlugin::set_object(Object *p_object) { - if (p_object->is_type("MenuButton")) + if (p_object->is_class("MenuButton")) pp = p_object->cast_to<MenuButton>()->get_popup(); else pp = p_object->cast_to<PopupMenu>(); @@ -161,7 +161,7 @@ void ItemListPopupMenuPlugin::set_object(Object *p_object) { bool ItemListPopupMenuPlugin::handles(Object *p_object) const { - return p_object->is_type("PopupMenu") || p_object->is_type("MenuButton"); + return p_object->is_class("PopupMenu") || p_object->is_class("MenuButton"); } int ItemListPopupMenuPlugin::get_flags() const { @@ -260,8 +260,8 @@ void ItemListEditor::edit(Node *p_item_list) { item_plugins[i]->set_object(p_item_list); property_editor->edit(item_plugins[i]); - if (has_icon(item_list->get_type(), "EditorIcons")) - toolbar_button->set_icon(get_icon(item_list->get_type(), "EditorIcons")); + if (has_icon(item_list->get_class(), "EditorIcons")) + toolbar_button->set_icon(get_icon(item_list->get_class(), "EditorIcons")); else toolbar_button->set_icon(Ref<Texture>()); @@ -287,9 +287,9 @@ bool ItemListEditor::handles(Object *p_object) const { void ItemListEditor::_bind_methods() { - ObjectTypeDB::bind_method("_edit_items",&ItemListEditor::_edit_items); - ObjectTypeDB::bind_method("_add_button",&ItemListEditor::_add_pressed); - ObjectTypeDB::bind_method("_delete_button",&ItemListEditor::_delete_pressed); + ClassDB::bind_method("_edit_items",&ItemListEditor::_edit_items); + ClassDB::bind_method("_add_button",&ItemListEditor::_add_pressed); + ClassDB::bind_method("_delete_button",&ItemListEditor::_delete_pressed); } ItemListEditor::ItemListEditor() { @@ -309,7 +309,7 @@ ItemListEditor::ItemListEditor() { VBoxContainer *vbc = memnew( VBoxContainer ); dialog->add_child(vbc); - dialog->set_child_rect(vbc); + //dialog->set_child_rect(vbc); HBoxContainer *hbc = memnew( HBoxContainer ); hbc->set_h_size_flags(SIZE_EXPAND_FILL); diff --git a/tools/editor/plugins/item_list_editor_plugin.h b/tools/editor/plugins/item_list_editor_plugin.h index 95d316b199..74700d615e 100644 --- a/tools/editor/plugins/item_list_editor_plugin.h +++ b/tools/editor/plugins/item_list_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -44,7 +44,7 @@ class ItemListPlugin : public Object { - OBJ_TYPE(ItemListPlugin,Object); + GDCLASS(ItemListPlugin,Object); protected: @@ -100,7 +100,7 @@ public: class ItemListOptionButtonPlugin : public ItemListPlugin { - OBJ_TYPE(ItemListOptionButtonPlugin,ItemListPlugin); + GDCLASS(ItemListOptionButtonPlugin,ItemListPlugin); OptionButton *ob; public: @@ -130,7 +130,7 @@ public: class ItemListPopupMenuPlugin : public ItemListPlugin { - OBJ_TYPE(ItemListPopupMenuPlugin,ItemListPlugin); + GDCLASS(ItemListPopupMenuPlugin,ItemListPlugin); PopupMenu *pp; public: @@ -171,7 +171,7 @@ public: class ItemListEditor : public HBoxContainer { - OBJ_TYPE(ItemListEditor,HBoxContainer); + GDCLASS(ItemListEditor,HBoxContainer); Node *item_list; @@ -209,7 +209,7 @@ public: class ItemListEditorPlugin : public EditorPlugin { - OBJ_TYPE(ItemListEditorPlugin,EditorPlugin); + GDCLASS(ItemListEditorPlugin,EditorPlugin); ItemListEditor *item_list_editor; EditorNode *editor; diff --git a/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp index 56e58bc983..f6a51632a0 100644 --- a/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp +++ b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -102,7 +102,7 @@ void LightOccluder2DEditor::_wip_close(bool p_closed) { edited_point=-1; } -bool LightOccluder2DEditor::forward_input_event(const InputEvent& p_event) { +bool LightOccluder2DEditor::forward_gui_input(const InputEvent& p_event) { if (!node) @@ -121,7 +121,7 @@ bool LightOccluder2DEditor::forward_input_event(const InputEvent& p_event) { const InputEventMouseButton &mb=p_event.mouse_button; - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Vector2 gpoint = Point2(mb.x,mb.y); @@ -132,7 +132,7 @@ bool LightOccluder2DEditor::forward_input_event(const InputEvent& p_event) { Vector<Vector2> poly = Variant(node->get_occluder_polygon()->get_polygon()); //first check if a point is to be added (segment split) - real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8); + real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8); switch(mode) { @@ -361,7 +361,7 @@ void LightOccluder2DEditor::_canvas_draw() { poly=Variant(node->get_occluder_polygon()->get_polygon()); - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Ref<Texture> handle= get_icon("EditorHandle","EditorIcons"); for(int i=0;i<poly.size();i++) { @@ -427,10 +427,10 @@ void LightOccluder2DEditor::_create_poly() { void LightOccluder2DEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_menu_option"),&LightOccluder2DEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_canvas_draw"),&LightOccluder2DEditor::_canvas_draw); - ObjectTypeDB::bind_method(_MD("_node_removed"),&LightOccluder2DEditor::_node_removed); - ObjectTypeDB::bind_method(_MD("_create_poly"),&LightOccluder2DEditor::_create_poly); + ClassDB::bind_method(_MD("_menu_option"),&LightOccluder2DEditor::_menu_option); + ClassDB::bind_method(_MD("_canvas_draw"),&LightOccluder2DEditor::_canvas_draw); + ClassDB::bind_method(_MD("_node_removed"),&LightOccluder2DEditor::_node_removed); + ClassDB::bind_method(_MD("_create_poly"),&LightOccluder2DEditor::_create_poly); } @@ -468,7 +468,7 @@ LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) { options->set_area_as_parent_rect(); options->set_text("Polygon"); //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); #endif mode = MODE_EDIT; @@ -484,7 +484,7 @@ void LightOccluder2DEditorPlugin::edit(Object *p_object) { bool LightOccluder2DEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("LightOccluder2D"); + return p_object->is_class("LightOccluder2D"); } void LightOccluder2DEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/light_occluder_2d_editor_plugin.h b/tools/editor/plugins/light_occluder_2d_editor_plugin.h index 0176eb87dd..431c01fe75 100644 --- a/tools/editor/plugins/light_occluder_2d_editor_plugin.h +++ b/tools/editor/plugins/light_occluder_2d_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -44,7 +44,7 @@ class CanvasItemEditor; class LightOccluder2DEditor : public HBoxContainer { - OBJ_TYPE(LightOccluder2DEditor, HBoxContainer ); + GDCLASS(LightOccluder2DEditor, HBoxContainer ); UndoRedo *undo_redo; enum Mode { @@ -85,21 +85,21 @@ protected: public: Vector2 snap_point(const Vector2& p_point) const; - bool forward_input_event(const InputEvent& p_event); + bool forward_gui_input(const InputEvent& p_event); void edit(Node *p_collision_polygon); LightOccluder2DEditor(EditorNode *p_editor); }; class LightOccluder2DEditorPlugin : public EditorPlugin { - OBJ_TYPE( LightOccluder2DEditorPlugin, EditorPlugin ); + GDCLASS( LightOccluder2DEditorPlugin, EditorPlugin ); LightOccluder2DEditor *collision_polygon_editor; EditorNode *editor; public: - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); } + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); } virtual String get_name() const { return "LightOccluder2D"; } bool has_main_screen() const { return false; } diff --git a/tools/editor/plugins/material_editor_plugin.cpp b/tools/editor/plugins/material_editor_plugin.cpp index 876fab0d6e..1aababa91b 100644 --- a/tools/editor/plugins/material_editor_plugin.cpp +++ b/tools/editor/plugins/material_editor_plugin.cpp @@ -1,7 +1,38 @@ +/*************************************************************************/ +/* material_editor_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "material_editor_plugin.h" + #include "scene/main/viewport.h" -void MaterialEditor::_input_event(InputEvent p_event) { +#if 0 + +void MaterialEditor::_gui_input(InputEvent p_event) { } @@ -91,8 +122,8 @@ void MaterialEditor::_button_pressed(Node* p_button) { void MaterialEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&MaterialEditor::_input_event); - ObjectTypeDB::bind_method(_MD("_button_pressed"),&MaterialEditor::_button_pressed); + ClassDB::bind_method(_MD("_gui_input"),&MaterialEditor::_gui_input); + ClassDB::bind_method(_MD("_button_pressed"),&MaterialEditor::_button_pressed); } @@ -127,8 +158,8 @@ MaterialEditor::MaterialEditor() { viewport->add_child(box_instance); Transform box_xform; - box_xform.basis.rotate(Vector3(1,0,0),Math::deg2rad(-25)); - box_xform.basis = box_xform.basis * Matrix3().rotated(Vector3(0,1,0),Math::deg2rad(-25)); + box_xform.basis.rotate(Vector3(1,0,0),Math::deg2rad(25)); + box_xform.basis = box_xform.basis * Matrix3().rotated(Vector3(0,1,0),Math::deg2rad(25)); box_xform.basis.scale(Vector3(0.8,0.8,0.8)); box_instance->set_transform(box_xform); @@ -141,10 +172,10 @@ MaterialEditor::MaterialEditor() { int lons=32; float radius=1.0; - DVector<Vector3> vertices; - DVector<Vector3> normals; - DVector<Vector2> uvs; - DVector<float> tangents; + PoolVector<Vector3> vertices; + PoolVector<Vector3> normals; + PoolVector<Vector2> uvs; + PoolVector<float> tangents; Matrix3 tt = Matrix3(Vector3(0,1,0),Math_PI*0.5); for(int i = 1; i <= lats; i++) { @@ -219,10 +250,10 @@ MaterialEditor::MaterialEditor() { box_mesh.instance(); - DVector<Vector3> vertices; - DVector<Vector3> normals; - DVector<float> tangents; - DVector<Vector3> uvs; + PoolVector<Vector3> vertices; + PoolVector<Vector3> normals; + PoolVector<float> tangents; + PoolVector<Vector3> uvs; int vtx_idx=0; #define ADD_VTX(m_idx);\ @@ -280,7 +311,7 @@ MaterialEditor::MaterialEditor() { d[VisualServer::ARRAY_TEX_UV]= uvs ; d[VisualServer::ARRAY_VERTEX]= vertices ; - DVector<int> indices; + PoolVector<int> indices; indices.resize(vertices.size()); for(int i=0;i<vertices.size();i++) indices.set(i,i); @@ -353,11 +384,11 @@ void MaterialEditorPlugin::make_visible(bool p_visible) { if (p_visible) { material_editor->show(); -// material_editor->set_process(true); + //material_editor->set_process(true); } else { material_editor->hide(); -// material_editor->set_process(false); + //material_editor->set_process(false); } } @@ -379,3 +410,4 @@ MaterialEditorPlugin::~MaterialEditorPlugin() } +#endif diff --git a/tools/editor/plugins/material_editor_plugin.h b/tools/editor/plugins/material_editor_plugin.h index 49e92493b3..5daae124e0 100644 --- a/tools/editor/plugins/material_editor_plugin.h +++ b/tools/editor/plugins/material_editor_plugin.h @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* material_editor_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef MATERIAL_EDITOR_PLUGIN_H #define MATERIAL_EDITOR_PLUGIN_H @@ -8,10 +36,10 @@ #include "scene/3d/mesh_instance.h" #include "scene/3d/camera.h" - +#if 0 class MaterialEditor : public Control { - OBJ_TYPE(MaterialEditor, Control); + GDCLASS(MaterialEditor, Control); Viewport *viewport; @@ -39,7 +67,7 @@ class MaterialEditor : public Control { protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -50,7 +78,7 @@ public: class MaterialEditorPlugin : public EditorPlugin { - OBJ_TYPE( MaterialEditorPlugin, EditorPlugin ); + GDCLASS( MaterialEditorPlugin, EditorPlugin ); MaterialEditor *material_editor; EditorNode *editor; @@ -69,3 +97,4 @@ public: }; #endif // MATERIAL_EDITOR_PLUGIN_H +#endif diff --git a/tools/editor/plugins/mesh_editor_plugin.cpp b/tools/editor/plugins/mesh_editor_plugin.cpp index b70cbad25f..49cb02c9d8 100644 --- a/tools/editor/plugins/mesh_editor_plugin.cpp +++ b/tools/editor/plugins/mesh_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,7 +28,8 @@ /*************************************************************************/ #include "mesh_editor_plugin.h" -void MeshEditor::_input_event(InputEvent p_event) { +#if 0 +void MeshEditor::_gui_input(InputEvent p_event) { if (p_event.type==InputEvent::MOUSE_MOTION && p_event.mouse_motion.button_mask&BUTTON_MASK_LEFT) { @@ -81,8 +82,8 @@ void MeshEditor::_notification(int p_what) { void MeshEditor::_update_rotation() { Transform t; - t.basis.rotate(Vector3(0, 1, 0), rot_y); - t.basis.rotate(Vector3(1, 0, 0), rot_x); + t.basis.rotate(Vector3(0, 1, 0), -rot_y); + t.basis.rotate(Vector3(1, 0, 0), -rot_x); mesh_instance->set_transform(t); } @@ -135,8 +136,8 @@ void MeshEditor::_button_pressed(Node* p_button) { void MeshEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&MeshEditor::_input_event); - ObjectTypeDB::bind_method(_MD("_button_pressed"),&MeshEditor::_button_pressed); + ClassDB::bind_method(_MD("_gui_input"),&MeshEditor::_gui_input); + ClassDB::bind_method(_MD("_button_pressed"),&MeshEditor::_button_pressed); } @@ -217,11 +218,11 @@ void MeshEditorPlugin::make_visible(bool p_visible) { if (p_visible) { mesh_editor->show(); -// mesh_editor->set_process(true); + //mesh_editor->set_process(true); } else { mesh_editor->hide(); -// mesh_editor->set_process(false); + //mesh_editor->set_process(false); } } @@ -241,3 +242,4 @@ MeshEditorPlugin::MeshEditorPlugin(EditorNode *p_node) { MeshEditorPlugin::~MeshEditorPlugin() { } +#endif diff --git a/tools/editor/plugins/mesh_editor_plugin.h b/tools/editor/plugins/mesh_editor_plugin.h index 0715a96e74..136290ffd4 100644 --- a/tools/editor/plugins/mesh_editor_plugin.h +++ b/tools/editor/plugins/mesh_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,6 +29,8 @@ #ifndef MESH_EDITOR_PLUGIN_H #define MESH_EDITOR_PLUGIN_H +#if 0 + #include "tools/editor/editor_plugin.h" #include "tools/editor/editor_node.h" #include "scene/resources/material.h" @@ -38,7 +40,7 @@ class MeshEditor : public Control { - OBJ_TYPE(MeshEditor, Control); + GDCLASS(MeshEditor, Control); @@ -63,7 +65,7 @@ class MeshEditor : public Control { void _update_rotation(); protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -74,7 +76,7 @@ public: class MeshEditorPlugin : public EditorPlugin { - OBJ_TYPE( MeshEditorPlugin, EditorPlugin ); + GDCLASS( MeshEditorPlugin, EditorPlugin ); MeshEditor *mesh_editor; EditorNode *editor; @@ -93,3 +95,4 @@ public: }; #endif // MESH_EDITOR_PLUGIN_H +#endif diff --git a/tools/editor/plugins/mesh_instance_editor_plugin.cpp b/tools/editor/plugins/mesh_instance_editor_plugin.cpp index c952feb1da..322e212534 100644 --- a/tools/editor/plugins/mesh_instance_editor_plugin.cpp +++ b/tools/editor/plugins/mesh_instance_editor_plugin.cpp @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* mesh_instance_editor_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "mesh_instance_editor_plugin.h" #include "scene/3d/physics_body.h" @@ -189,7 +217,7 @@ void MeshInstanceEditor::_create_outline_mesh() { return; } - Ref<Mesh> mesho = mesh->create_outline(outline_size->get_val()); + Ref<Mesh> mesho = mesh->create_outline(outline_size->get_value()); if (mesho.is_null()) { err_dialog->set_text(TTR("Could not create outline!")); @@ -218,8 +246,8 @@ void MeshInstanceEditor::_create_outline_mesh() { void MeshInstanceEditor::_bind_methods() { - ObjectTypeDB::bind_method("_menu_option",&MeshInstanceEditor::_menu_option); - ObjectTypeDB::bind_method("_create_outline_mesh",&MeshInstanceEditor::_create_outline_mesh); + ClassDB::bind_method("_menu_option",&MeshInstanceEditor::_menu_option); + ClassDB::bind_method("_create_outline_mesh",&MeshInstanceEditor::_create_outline_mesh); } MeshInstanceEditor::MeshInstanceEditor() { @@ -241,7 +269,7 @@ MeshInstanceEditor::MeshInstanceEditor() { options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Create Outline Mesh.."),MENU_OPTION_CREATE_OUTLINE_MESH); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); outline_dialog = memnew( ConfirmationDialog ); outline_dialog->set_title(TTR("Create Outline Mesh")); @@ -249,13 +277,13 @@ MeshInstanceEditor::MeshInstanceEditor() { VBoxContainer *outline_dialog_vbc = memnew( VBoxContainer ); outline_dialog->add_child(outline_dialog_vbc); - outline_dialog->set_child_rect(outline_dialog_vbc); + //outline_dialog->set_child_rect(outline_dialog_vbc); outline_size = memnew( SpinBox ); outline_size->set_min(0.001); outline_size->set_max(1024); outline_size->set_step(0.001); - outline_size->set_val(0.05); + outline_size->set_value(0.05); outline_dialog_vbc->add_margin_child(TTR("Outline Size:"),outline_size); add_child(outline_dialog); @@ -274,7 +302,7 @@ void MeshInstanceEditorPlugin::edit(Object *p_object) { bool MeshInstanceEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("MeshInstance"); + return p_object->is_class("MeshInstance"); } void MeshInstanceEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/mesh_instance_editor_plugin.h b/tools/editor/plugins/mesh_instance_editor_plugin.h index a698cf382f..441d4d1d3f 100644 --- a/tools/editor/plugins/mesh_instance_editor_plugin.h +++ b/tools/editor/plugins/mesh_instance_editor_plugin.h @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* mesh_instance_editor_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef MESH_INSTANCE_EDITOR_PLUGIN_H #define MESH_INSTANCE_EDITOR_PLUGIN_H @@ -10,7 +38,7 @@ class MeshInstanceEditor : public Node { - OBJ_TYPE(MeshInstanceEditor, Node ); + GDCLASS(MeshInstanceEditor, Node ); enum Menu { @@ -48,7 +76,7 @@ public: class MeshInstanceEditorPlugin : public EditorPlugin { - OBJ_TYPE( MeshInstanceEditorPlugin, EditorPlugin ); + GDCLASS( MeshInstanceEditorPlugin, EditorPlugin ); MeshInstanceEditor *mesh_editor; EditorNode *editor; diff --git a/tools/editor/plugins/multimesh_editor_plugin.cpp b/tools/editor/plugins/multimesh_editor_plugin.cpp index 8a0c6b3fe8..6259ddf473 100644 --- a/tools/editor/plugins/multimesh_editor_plugin.cpp +++ b/tools/editor/plugins/multimesh_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "multimesh_editor_plugin.h" + #include "scene/gui/box_container.h" #include "scene/3d/mesh_instance.h" #include "spatial_editor_plugin.h" @@ -125,7 +126,7 @@ void MultiMeshEditor::_populate() { Transform geom_xform = node->get_global_transform().affine_inverse() * ss_instance->get_global_transform(); - DVector<Face3> geometry = ss_instance->get_faces(VisualInstance::FACES_SOLID); + PoolVector<Face3> geometry = ss_instance->get_faces(VisualInstance::FACES_SOLID); if (geometry.size()==0) { @@ -137,7 +138,7 @@ void MultiMeshEditor::_populate() { //make all faces local int gc = geometry.size(); - DVector<Face3>::Write w = geometry.write(); + PoolVector<Face3>::Write w = geometry.write(); for(int i=0;i<gc;i++) { for(int j=0;j<3;j++) { @@ -147,7 +148,7 @@ void MultiMeshEditor::_populate() { - w = DVector<Face3>::Write(); + w = PoolVector<Face3>::Write(); #if 0 node->get_multimesh()->set_instance_count(populate_amount->get_val()); node->populate_parent(populate_rotate_random->get_val(),populate_tilt_random->get_val(),populate_scale_random->get_val(),populate_scale->get_val()); @@ -164,12 +165,12 @@ void MultiMeshEditor::_populate() { ERR_FAIL_COND(!vi); #endif - DVector<Face3> faces = geometry; + PoolVector<Face3> faces = geometry; ERR_EXPLAIN(TTR("Parent has no solid faces to populate.")); int facecount=faces.size(); ERR_FAIL_COND(!facecount); - DVector<Face3>::Read r = faces.read(); + PoolVector<Face3>::Read r = faces.read(); @@ -177,7 +178,7 @@ void MultiMeshEditor::_populate() { Map<float,int> triangle_area_map; for(int i=0;i<facecount;i++) { - float area = r[i].get_area();; + float area = r[i].get_area(); if (area<CMP_EPSILON) continue; triangle_area_map[area_accum]=i; @@ -193,27 +194,29 @@ void MultiMeshEditor::_populate() { Ref<MultiMesh> multimesh = memnew( MultiMesh ); multimesh->set_mesh(mesh); - int instance_count=populate_amount->get_val(); + int instance_count=populate_amount->get_value(); + multimesh->set_transform_format(MultiMesh::TRANSFORM_3D); + multimesh->set_color_format(MultiMesh::COLOR_NONE); multimesh->set_instance_count(instance_count); - float _tilt_random = populate_tilt_random->get_val(); - float _rotate_random = populate_rotate_random->get_val(); - float _scale_random = populate_scale_random->get_val(); - float _scale = populate_scale->get_val(); + float _tilt_random = populate_tilt_random->get_value(); + float _rotate_random = populate_rotate_random->get_value(); + float _scale_random = populate_scale_random->get_value(); + float _scale = populate_scale->get_value(); int axis = populate_axis->get_selected(); Transform axis_xform; if (axis==Vector3::AXIS_Z) { - axis_xform.rotate(Vector3(1,0,0),Math_PI*0.5); + axis_xform.rotate(Vector3(1,0,0),-Math_PI*0.5); } if (axis==Vector3::AXIS_X) { - axis_xform.rotate(Vector3(0,0,1),Math_PI*0.5); + axis_xform.rotate(Vector3(0,0,1),-Math_PI*0.5); } for(int i=0;i<instance_count;i++) { - float areapos = Math::random(0,area_accum); + float areapos = Math::random(0.0f,area_accum); Map<float,int>::Element *E = triangle_area_map.find_closest(areapos); ERR_FAIL_COND(!E) @@ -234,11 +237,12 @@ void MultiMeshEditor::_populate() { xform = xform * axis_xform; - Matrix3 post_xform; + Basis post_xform; + + post_xform.rotate(xform.basis.get_axis(1),-Math::random(-_rotate_random,_rotate_random)*Math_PI); + post_xform.rotate(xform.basis.get_axis(2),-Math::random(-_tilt_random,_tilt_random)*Math_PI); + post_xform.rotate(xform.basis.get_axis(0),-Math::random(-_tilt_random,_tilt_random)*Math_PI); - post_xform.rotate(xform.basis.get_axis(0),Math::random(-_tilt_random,_tilt_random)*Math_PI); - post_xform.rotate(xform.basis.get_axis(2),Math::random(-_tilt_random,_tilt_random)*Math_PI); - post_xform.rotate(xform.basis.get_axis(1),Math::random(-_rotate_random,_rotate_random)*Math_PI); xform.basis = post_xform * xform.basis; //xform.basis.orthonormalize(); @@ -247,10 +251,10 @@ void MultiMeshEditor::_populate() { multimesh->set_instance_transform(i,xform); - multimesh->set_instance_color(i,Color(1,1,1,1)); + } - multimesh->generate_aabb(); + node->set_multimesh(multimesh); @@ -281,11 +285,11 @@ void MultiMeshEditor::_menu_option(int p_option) { surface_source->set_text(".."); mesh_source->set_text(".."); populate_axis->select(1); - populate_rotate_random->set_val(0); - populate_tilt_random->set_val(0); - populate_scale_random->set_val(0); - populate_scale->set_val(1); - populate_amount->set_val(128); + populate_rotate_random->set_value(0); + populate_tilt_random->set_value(0); + populate_scale_random->set_value(0); + populate_scale->set_value(1); + populate_amount->set_value(128); _last_pp_node=node; } @@ -315,10 +319,10 @@ void MultiMeshEditor::_browse(bool p_source) { void MultiMeshEditor::_bind_methods() { - ObjectTypeDB::bind_method("_menu_option",&MultiMeshEditor::_menu_option); - ObjectTypeDB::bind_method("_populate",&MultiMeshEditor::_populate); - ObjectTypeDB::bind_method("_browsed",&MultiMeshEditor::_browsed); - ObjectTypeDB::bind_method("_browse",&MultiMeshEditor::_browse); + ClassDB::bind_method("_menu_option",&MultiMeshEditor::_menu_option); + ClassDB::bind_method("_populate",&MultiMeshEditor::_populate); + ClassDB::bind_method("_browsed",&MultiMeshEditor::_browsed); + ClassDB::bind_method("_browse",&MultiMeshEditor::_browse); } MultiMeshEditor::MultiMeshEditor() { @@ -331,7 +335,7 @@ MultiMeshEditor::MultiMeshEditor() { options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("MultiMeshInstance","EditorIcons")); options->get_popup()->add_item(TTR("Populate Surface")); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); populate_dialog = memnew( ConfirmationDialog ); populate_dialog->set_title(TTR("Populate MultiMesh")); @@ -339,7 +343,7 @@ MultiMeshEditor::MultiMeshEditor() { VBoxContainer *vbc = memnew( VBoxContainer ); populate_dialog->add_child(vbc); - populate_dialog->set_child_rect(vbc); + //populate_dialog->set_child_rect(vbc); HBoxContainer *hbc = memnew( HBoxContainer ); @@ -385,14 +389,16 @@ MultiMeshEditor::MultiMeshEditor() { populate_scale_random = memnew( SpinBox ); populate_scale_random->set_min(0); populate_scale_random->set_max(1); - populate_scale_random->set_val(0); + populate_scale_random->set_value(0); + populate_scale_random->set_step(0.01); vbc->add_margin_child(TTR("Random Scale:"),populate_scale_random); populate_scale = memnew( SpinBox ); populate_scale->set_min(0.001); populate_scale->set_max(4096); - populate_scale->set_val(1); + populate_scale->set_value(1); + populate_scale->set_step(0.01); vbc->add_margin_child(TTR("Scale:"),populate_scale); @@ -403,7 +409,7 @@ MultiMeshEditor::MultiMeshEditor() { populate_amount->set_end( Point2(5,237)); populate_amount->set_min(1); populate_amount->set_max(65536); - populate_amount->set_val(128); + populate_amount->set_value(128); vbc->add_margin_child(TTR("Amount:"),populate_amount); populate_dialog->get_ok()->set_text(TTR("Populate")); @@ -427,7 +433,7 @@ void MultiMeshEditorPlugin::edit(Object *p_object) { bool MultiMeshEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("MultiMeshInstance"); + return p_object->is_class("MultiMeshInstance"); } void MultiMeshEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/multimesh_editor_plugin.h b/tools/editor/plugins/multimesh_editor_plugin.h index 245da1eeb7..e322850238 100644 --- a/tools/editor/plugins/multimesh_editor_plugin.h +++ b/tools/editor/plugins/multimesh_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ class MultiMeshEditor : public Control { - OBJ_TYPE(MultiMeshEditor, Control ); + GDCLASS(MultiMeshEditor, Control ); friend class MultiMeshEditorPlugin; @@ -86,7 +86,7 @@ public: class MultiMeshEditorPlugin : public EditorPlugin { - OBJ_TYPE( MultiMeshEditorPlugin, EditorPlugin ); + GDCLASS( MultiMeshEditorPlugin, EditorPlugin ); MultiMeshEditor *multimesh_editor; EditorNode *editor; diff --git a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp index 22546c72f3..e70f2be9fa 100644 --- a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp +++ b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -116,7 +116,7 @@ void NavigationPolygonEditor::_wip_close() { edited_point=-1; } -bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { +bool NavigationPolygonEditor::forward_gui_input(const InputEvent& p_event) { if (!node) @@ -127,7 +127,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { create_nav->set_text("No NavigationPolygon resource on this node.\nCreate and assign one?"); create_nav->popup_centered_minsize(); } - return (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==1);; + return (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==1); } @@ -137,7 +137,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { const InputEventMouseButton &mb=p_event.mouse_button; - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Vector2 gpoint = Point2(mb.x,mb.y); @@ -148,7 +148,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { //first check if a point is to be added (segment split) - real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8); + real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8); switch(mode) { @@ -211,10 +211,10 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { for(int j=0;j<node->get_navigation_polygon()->get_outline_count();j++) { - DVector<Vector2> points=node->get_navigation_polygon()->get_outline(j); + PoolVector<Vector2> points=node->get_navigation_polygon()->get_outline(j); int pc=points.size(); - DVector<Vector2>::Read poly=points.read(); + PoolVector<Vector2>::Read poly=points.read(); for(int i=0;i<pc;i++) { @@ -240,7 +240,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { if (closest_idx>=0) { pre_move_edit=node->get_navigation_polygon()->get_outline(closest_outline); - DVector<Point2> poly = pre_move_edit; + PoolVector<Point2> poly = pre_move_edit; poly.insert(closest_idx+1,xform.affine_inverse().xform(closest_pos)); edited_point=closest_idx+1; edited_outline=closest_outline; @@ -260,10 +260,10 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { for(int j=0;j<node->get_navigation_polygon()->get_outline_count();j++) { - DVector<Vector2> points=node->get_navigation_polygon()->get_outline(j); + PoolVector<Vector2> points=node->get_navigation_polygon()->get_outline(j); int pc=points.size(); - DVector<Vector2>::Read poly=points.read(); + PoolVector<Vector2>::Read poly=points.read(); for(int i=0;i<pc;i++) { @@ -296,7 +296,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { //apply - DVector<Vector2> poly = node->get_navigation_polygon()->get_outline(edited_outline); + PoolVector<Vector2> poly = node->get_navigation_polygon()->get_outline(edited_outline); ERR_FAIL_INDEX_V(edited_point,poly.size(),false); poly.set(edited_point,edited_point_pos); undo_redo->create_action(TTR("Edit Poly")); @@ -322,10 +322,10 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { for(int j=0;j<node->get_navigation_polygon()->get_outline_count();j++) { - DVector<Vector2> points=node->get_navigation_polygon()->get_outline(j); + PoolVector<Vector2> points=node->get_navigation_polygon()->get_outline(j); int pc=points.size(); - DVector<Vector2>::Read poly=points.read(); + PoolVector<Vector2>::Read poly=points.read(); for(int i=0;i<pc;i++) { @@ -345,7 +345,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) { if (closest_idx>=0) { - DVector<Vector2> poly = node->get_navigation_polygon()->get_outline(closest_outline); + PoolVector<Vector2> poly = node->get_navigation_polygon()->get_outline(closest_outline); if (poly.size()>3) { undo_redo->create_action(TTR("Edit Poly (Remove Point)")); @@ -411,7 +411,7 @@ void NavigationPolygonEditor::_canvas_draw() { if (node->get_navigation_polygon().is_null()) return; - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Ref<Texture> handle= get_icon("EditorHandle","EditorIcons"); @@ -477,10 +477,10 @@ void NavigationPolygonEditor::edit(Node *p_collision_polygon) { void NavigationPolygonEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_menu_option"),&NavigationPolygonEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_canvas_draw"),&NavigationPolygonEditor::_canvas_draw); - ObjectTypeDB::bind_method(_MD("_node_removed"),&NavigationPolygonEditor::_node_removed); - ObjectTypeDB::bind_method(_MD("_create_nav"),&NavigationPolygonEditor::_create_nav); + ClassDB::bind_method(_MD("_menu_option"),&NavigationPolygonEditor::_menu_option); + ClassDB::bind_method(_MD("_canvas_draw"),&NavigationPolygonEditor::_canvas_draw); + ClassDB::bind_method(_MD("_node_removed"),&NavigationPolygonEditor::_node_removed); + ClassDB::bind_method(_MD("_create_nav"),&NavigationPolygonEditor::_create_nav); } @@ -515,7 +515,7 @@ NavigationPolygonEditor::NavigationPolygonEditor(EditorNode *p_editor) { options->set_area_as_parent_rect(); options->set_text("Polygon"); //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); #endif mode = MODE_EDIT; @@ -532,7 +532,7 @@ void NavigationPolygonEditorPlugin::edit(Object *p_object) { bool NavigationPolygonEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("NavigationPolygonInstance"); + return p_object->is_class("NavigationPolygonInstance"); } void NavigationPolygonEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/navigation_polygon_editor_plugin.h b/tools/editor/plugins/navigation_polygon_editor_plugin.h index defdebbec2..50df4df744 100644 --- a/tools/editor/plugins/navigation_polygon_editor_plugin.h +++ b/tools/editor/plugins/navigation_polygon_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -44,7 +44,7 @@ class CanvasItemEditor; class NavigationPolygonEditor : public HBoxContainer { - OBJ_TYPE(NavigationPolygonEditor, HBoxContainer ); + GDCLASS(NavigationPolygonEditor, HBoxContainer ); UndoRedo *undo_redo; enum Mode { @@ -70,7 +70,7 @@ class NavigationPolygonEditor : public HBoxContainer { int edited_outline; int edited_point; Vector2 edited_point_pos; - DVector<Vector2> pre_move_edit; + PoolVector<Vector2> pre_move_edit; Vector<Vector2> wip; bool wip_active; @@ -87,21 +87,21 @@ protected: static void _bind_methods(); public: - bool forward_input_event(const InputEvent& p_event); + bool forward_gui_input(const InputEvent& p_event); void edit(Node *p_collision_polygon); NavigationPolygonEditor(EditorNode *p_editor); }; class NavigationPolygonEditorPlugin : public EditorPlugin { - OBJ_TYPE( NavigationPolygonEditorPlugin, EditorPlugin ); + GDCLASS( NavigationPolygonEditorPlugin, EditorPlugin ); NavigationPolygonEditor *collision_polygon_editor; EditorNode *editor; public: - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); } + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); } virtual String get_name() const { return "NavigationPolygonInstance"; } bool has_main_screen() const { return false; } diff --git a/tools/editor/plugins/particles_2d_editor_plugin.cpp b/tools/editor/plugins/particles_2d_editor_plugin.cpp index ce25f34c1f..20b1b9d1ca 100644 --- a/tools/editor/plugins/particles_2d_editor_plugin.cpp +++ b/tools/editor/plugins/particles_2d_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,8 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ - #include "particles_2d_editor_plugin.h" + #include "canvas_item_editor_plugin.h" #include "io/image_loader.h" #include "scene/gui/separator.h" @@ -43,7 +43,7 @@ void Particles2DEditorPlugin::edit(Object *p_object) { bool Particles2DEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("Particles2D"); + return p_object->is_class("Particles2D"); } void Particles2DEditorPlugin::make_visible(bool p_visible) { @@ -62,20 +62,20 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) { print_line("file: "+p_file); - int epc=epoints->get_val(); + int epc=epoints->get_value(); Image img; Error err = ImageLoader::load_image(p_file,&img); ERR_EXPLAIN(TTR("Error loading image:")+" "+p_file); ERR_FAIL_COND(err!=OK); - img.convert(Image::FORMAT_GRAYSCALE_ALPHA); - ERR_FAIL_COND(img.get_format()!=Image::FORMAT_GRAYSCALE_ALPHA); + img.convert(Image::FORMAT_LA8); + ERR_FAIL_COND(img.get_format()!=Image::FORMAT_LA8); Size2i s = Size2(img.get_width(),img.get_height()); ERR_FAIL_COND(s.width==0 || s.height==0); - DVector<uint8_t> data = img.get_data(); - DVector<uint8_t>::Read r = data.read(); + PoolVector<uint8_t> data = img.get_data(); + PoolVector<uint8_t>::Read r = data.read(); Vector<Point2i> valid_positions; valid_positions.resize(s.width*s.height); @@ -95,9 +95,9 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) { ERR_EXPLAIN(TTR("No pixels with transparency > 128 in image..")); ERR_FAIL_COND(valid_positions.size()==0); - DVector<Point2> epoints; + PoolVector<Point2> epoints; epoints.resize(epc); - DVector<Point2>::Write w = epoints.write(); + PoolVector<Point2>::Write w = epoints.write(); Size2 extents = Size2(img.get_width()*0.5,img.get_height()*0.5); @@ -108,7 +108,7 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) { w[i]=p/extents; } - w = DVector<Point2>::Write(); + w = PoolVector<Point2>::Write(); undo_redo->create_action(TTR("Set Emission Mask")); undo_redo->add_do_method(particles,"set_emission_points",epoints); @@ -131,7 +131,7 @@ void Particles2DEditorPlugin::_menu_callback(int p_idx) { case MENU_CLEAR_EMISSION_MASK: { undo_redo->create_action(TTR("Clear Emission Mask")); - undo_redo->add_do_method(particles,"set_emission_points",DVector<Vector2>()); + undo_redo->add_do_method(particles,"set_emission_points",PoolVector<Vector2>()); undo_redo->add_undo_method(particles,"set_emission_points",particles->get_emission_points()); undo_redo->commit_action(); } break; @@ -144,7 +144,7 @@ void Particles2DEditorPlugin::_notification(int p_what) { if (p_what==NOTIFICATION_ENTER_TREE) { - menu->get_popup()->connect("item_pressed",this,"_menu_callback"); + menu->get_popup()->connect("id_pressed",this,"_menu_callback"); menu->set_icon(menu->get_popup()->get_icon("Particles2D","EditorIcons")); file->connect("file_selected",this,"_file_selected"); } @@ -152,8 +152,8 @@ void Particles2DEditorPlugin::_notification(int p_what) { void Particles2DEditorPlugin::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_menu_callback"),&Particles2DEditorPlugin::_menu_callback); - ObjectTypeDB::bind_method(_MD("_file_selected"),&Particles2DEditorPlugin::_file_selected); + ClassDB::bind_method(_MD("_menu_callback"),&Particles2DEditorPlugin::_menu_callback); + ClassDB::bind_method(_MD("_file_selected"),&Particles2DEditorPlugin::_file_selected); } @@ -189,7 +189,7 @@ Particles2DEditorPlugin::Particles2DEditorPlugin(EditorNode *p_node) { epoints->set_min(1); epoints->set_max(8192); epoints->set_step(1); - epoints->set_val(512); + epoints->set_value(512); file->get_vbox()->add_margin_child(TTR("Generated Point Count:"),epoints); } diff --git a/tools/editor/plugins/particles_2d_editor_plugin.h b/tools/editor/plugins/particles_2d_editor_plugin.h index ce2056b482..c532a5fe73 100644 --- a/tools/editor/plugins/particles_2d_editor_plugin.h +++ b/tools/editor/plugins/particles_2d_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -39,7 +39,7 @@ class Particles2DEditorPlugin : public EditorPlugin { - OBJ_TYPE( Particles2DEditorPlugin, EditorPlugin ); + GDCLASS( Particles2DEditorPlugin, EditorPlugin ); enum { diff --git a/tools/editor/plugins/particles_editor_plugin.cpp b/tools/editor/plugins/particles_editor_plugin.cpp index 7e20cc3f54..fd5ec5b5b9 100644 --- a/tools/editor/plugins/particles_editor_plugin.cpp +++ b/tools/editor/plugins/particles_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,6 +26,8 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ + +#if 0 #include "particles_editor_plugin.h" #include "io/resource_loader.h" #include "servers/visual/particle_system_sw.h" @@ -75,7 +77,7 @@ void ParticlesEditor::_node_selected(const NodePath& p_path){ Transform geom_xform = node->get_global_transform().affine_inverse() * vi->get_global_transform(); int gc = geometry.size(); - DVector<Face3>::Write w = geometry.write(); + PoolVector<Face3>::Write w = geometry.write(); for(int i=0;i<gc;i++) { @@ -85,7 +87,7 @@ void ParticlesEditor::_node_selected(const NodePath& p_path){ } - w = DVector<Face3>::Write(); + w = PoolVector<Face3>::Write(); emission_dialog->popup_centered(Size2(300,130)); } @@ -200,7 +202,7 @@ void ParticlesEditor::edit(Particles *p_particles) { void ParticlesEditor::_generate_emission_points() { /// hacer codigo aca - DVector<Vector3> points; + PoolVector<Vector3> points; if (emission_fill->get_selected()==0) { @@ -210,7 +212,7 @@ void ParticlesEditor::_generate_emission_points() { for(int i=0;i<geometry.size();i++) { - float area = geometry[i].get_area();; + float area = geometry[i].get_area(); if (area<CMP_EPSILON) continue; triangle_area_map[area_accum]=i; @@ -254,7 +256,7 @@ void ParticlesEditor::_generate_emission_points() { return; } - DVector<Face3>::Read r = geometry.read(); + PoolVector<Face3>::Read r = geometry.read(); AABB aabb; @@ -330,12 +332,12 @@ void ParticlesEditor::_generate_emission_points() { void ParticlesEditor::_bind_methods() { - ObjectTypeDB::bind_method("_menu_option",&ParticlesEditor::_menu_option); - ObjectTypeDB::bind_method("_resource_seleted",&ParticlesEditor::_resource_seleted); - ObjectTypeDB::bind_method("_node_selected",&ParticlesEditor::_node_selected); - ObjectTypeDB::bind_method("_generate_emission_points",&ParticlesEditor::_generate_emission_points); + ClassDB::bind_method("_menu_option",&ParticlesEditor::_menu_option); + ClassDB::bind_method("_resource_seleted",&ParticlesEditor::_resource_seleted); + ClassDB::bind_method("_node_selected",&ParticlesEditor::_node_selected); + ClassDB::bind_method("_generate_emission_points",&ParticlesEditor::_generate_emission_points); - //ObjectTypeDB::bind_method("_populate",&ParticlesEditor::_populate); + //ClassDB::bind_method("_populate",&ParticlesEditor::_populate); } @@ -354,7 +356,7 @@ ParticlesEditor::ParticlesEditor() { options->get_popup()->add_item(TTR("Create Emitter From Node"),MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE); options->get_popup()->add_item(TTR("Clear Emitter"),MENU_OPTION_CLEAR_EMISSION_VOLUME); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); emission_dialog = memnew( ConfirmationDialog ); emission_dialog->set_title(TTR("Create Emitter")); @@ -456,3 +458,4 @@ ParticlesEditorPlugin::~ParticlesEditorPlugin() } +#endif diff --git a/tools/editor/plugins/particles_editor_plugin.h b/tools/editor/plugins/particles_editor_plugin.h index ff80bffc29..c32fbe5ada 100644 --- a/tools/editor/plugins/particles_editor_plugin.h +++ b/tools/editor/plugins/particles_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,10 +37,10 @@ /** @author Juan Linietsky <reduzio@gmail.com> */ - +#if 0 class ParticlesEditor : public Control { - OBJ_TYPE(ParticlesEditor, Control ); + GDCLASS(ParticlesEditor, Control ); Panel *panel; MenuButton *options; @@ -69,7 +69,7 @@ class ParticlesEditor : public Control { }; - DVector<Face3> geometry; + PoolVector<Face3> geometry; void _generate_emission_points(); void _resource_seleted(const String& p_res); @@ -94,7 +94,7 @@ public: class ParticlesEditorPlugin : public EditorPlugin { - OBJ_TYPE( ParticlesEditorPlugin, EditorPlugin ); + GDCLASS( ParticlesEditorPlugin, EditorPlugin ); ParticlesEditor *particles_editor; EditorNode *editor; @@ -113,3 +113,4 @@ public: }; #endif // PARTICLES_EDITOR_PLUGIN_H +#endif diff --git a/tools/editor/plugins/path_2d_editor_plugin.cpp b/tools/editor/plugins/path_2d_editor_plugin.cpp index 95f330a1d5..8e475e56f7 100644 --- a/tools/editor/plugins/path_2d_editor_plugin.cpp +++ b/tools/editor/plugins/path_2d_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -38,7 +38,7 @@ void Path2DEditor::_notification(int p_what) { case NOTIFICATION_READY: { -// button_create->set_icon( get_icon("Edit","EditorIcons")); + //button_create->set_icon( get_icon("Edit","EditorIcons")); //button_edit->set_icon( get_icon("MovePoint","EditorIcons")); //set_pressed_button(button_edit); //button_edit->set_pressed(true); @@ -62,12 +62,12 @@ void Path2DEditor::_node_removed(Node *p_node) { } -bool Path2DEditor::forward_input_event(const InputEvent& p_event) { +bool Path2DEditor::forward_gui_input(const InputEvent& p_event) { if (!node) return false; - if (!node->is_visible()) + if (!node->is_visible_in_tree()) return false; if (!node->get_curve().is_valid()) @@ -79,14 +79,14 @@ bool Path2DEditor::forward_input_event(const InputEvent& p_event) { const InputEventMouseButton &mb=p_event.mouse_button; - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Vector2 gpoint = Point2(mb.x,mb.y); Vector2 cpoint = !mb.mod.alt? canvas_item_editor->snap_point(xform.affine_inverse().xform(gpoint)) : node->get_global_transform().affine_inverse().xform( canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint)) ); //first check if a point is to be added (segment split) - real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8); + real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8); @@ -421,7 +421,7 @@ bool Path2DEditor::forward_input_event(const InputEvent& p_event) { if ( action!=ACTION_NONE) { - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Vector2 gpoint = Point2(mm.x,mm.y); Vector2 cpoint = !mm.mod.alt? canvas_item_editor->snap_point(xform.affine_inverse().xform(gpoint)) : node->get_global_transform().affine_inverse().xform( canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint)) ); @@ -475,13 +475,13 @@ void Path2DEditor::_canvas_draw() { if (!node) return ; - if (!node->is_visible()) + if (!node->is_visible_in_tree()) return; if (!node->get_curve().is_valid()) return ; - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Ref<Texture> handle= get_icon("EditorHandle","EditorIcons"); Size2 handle_size = handle->get_size(); @@ -550,10 +550,10 @@ void Path2DEditor::edit(Node *p_path2d) { void Path2DEditor::_bind_methods() { - //ObjectTypeDB::bind_method(_MD("_menu_option"),&Path2DEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_canvas_draw"),&Path2DEditor::_canvas_draw); - ObjectTypeDB::bind_method(_MD("_node_visibility_changed"),&Path2DEditor::_node_visibility_changed); - ObjectTypeDB::bind_method(_MD("_mode_selected"),&Path2DEditor::_mode_selected); + //ClassDB::bind_method(_MD("_menu_option"),&Path2DEditor::_menu_option); + ClassDB::bind_method(_MD("_canvas_draw"),&Path2DEditor::_canvas_draw); + ClassDB::bind_method(_MD("_node_visibility_changed"),&Path2DEditor::_node_visibility_changed); + ClassDB::bind_method(_MD("_mode_selected"),&Path2DEditor::_mode_selected); } void Path2DEditor::_mode_selected(int p_mode) { @@ -624,7 +624,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) { options->set_area_as_parent_rect(); options->set_text("Polygon"); //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); #endif base_hb = memnew( HBoxContainer ); @@ -683,7 +683,7 @@ void Path2DEditorPlugin::edit(Object *p_object) { bool Path2DEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("Path2D"); + return p_object->is_class("Path2D"); } void Path2DEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/path_2d_editor_plugin.h b/tools/editor/plugins/path_2d_editor_plugin.h index acbc481e09..aa940e4edf 100644 --- a/tools/editor/plugins/path_2d_editor_plugin.h +++ b/tools/editor/plugins/path_2d_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -42,7 +42,7 @@ class CanvasItemEditor; class Path2DEditor : public HBoxContainer { - OBJ_TYPE(Path2DEditor, HBoxContainer); + GDCLASS(Path2DEditor, HBoxContainer); UndoRedo *undo_redo; @@ -94,21 +94,21 @@ protected: static void _bind_methods(); public: - bool forward_input_event(const InputEvent& p_event); + bool forward_gui_input(const InputEvent& p_event); void edit(Node *p_path2d); Path2DEditor(EditorNode *p_editor); }; class Path2DEditorPlugin : public EditorPlugin { - OBJ_TYPE( Path2DEditorPlugin, EditorPlugin ); + GDCLASS( Path2DEditorPlugin, EditorPlugin ); Path2DEditor *path2d_editor; EditorNode *editor; public: - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return path2d_editor->forward_input_event(p_event); } + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return path2d_editor->forward_gui_input(p_event); } virtual String get_name() const { return "Path2D"; } bool has_main_screen() const { return false; } diff --git a/tools/editor/plugins/path_editor_plugin.cpp b/tools/editor/plugins/path_editor_plugin.cpp index 33ef71efab..2e148d6486 100644 --- a/tools/editor/plugins/path_editor_plugin.cpp +++ b/tools/editor/plugins/path_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,10 +27,12 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "path_editor_plugin.h" + #include "spatial_editor_plugin.h" #include "scene/resources/curve.h" #include "os/keyboard.h" +#if 0 String PathSpatialGizmo::get_handle_name(int p_idx) const { Ref<Curve3D> c = path->get_curve(); @@ -103,6 +105,12 @@ void PathSpatialGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_po if (p.intersects_ray(ray_from,ray_dir,&inters)) { + if(SpatialEditor::get_singleton()->is_snap_enabled()) + { + float snap = SpatialEditor::get_singleton()->get_translate_snap(); + inters.snap(snap); + } + Vector3 local = gi.xform(inters); c->set_point_pos(p_idx,local); } @@ -278,7 +286,7 @@ Ref<SpatialEditorGizmo> PathEditorPlugin::create_spatial_gizmo(Spatial* p_spatia return Ref<SpatialEditorGizmo>(); } -bool PathEditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) { +bool PathEditorPlugin::forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) { if (!path) return false; @@ -369,7 +377,7 @@ bool PathEditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputE ur->create_action(TTR("Split Path")); ur->add_do_method(c.ptr(),"add_point",closest_seg_point,Vector3(),Vector3(),closest_seg+1); ur->add_undo_method(c.ptr(),"remove_point",closest_seg+1); - ur->commit_action();; + ur->commit_action(); return true; } else { @@ -389,7 +397,7 @@ bool PathEditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputE ur->create_action(TTR("Add Point to Curve")); ur->add_do_method(c.ptr(),"add_point",it.xform(inters),Vector3(),Vector3(),-1); ur->add_undo_method(c.ptr(),"remove_point",c->get_point_count()); - ur->commit_action();; + ur->commit_action(); return true; } @@ -442,7 +450,7 @@ void PathEditorPlugin::edit(Object *p_object) { pre->get_curve()->emit_signal("changed"); } } -// collision_polygon_editor->edit(p_object->cast_to<Node>()); + //collision_polygon_editor->edit(p_object->cast_to<Node>()); } bool PathEditorPlugin::handles(Object *p_object) const { @@ -509,8 +517,8 @@ void PathEditorPlugin::_notification(int p_what) { void PathEditorPlugin::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_mode_changed"),&PathEditorPlugin::_mode_changed); - ObjectTypeDB::bind_method(_MD("_close_curve"),&PathEditorPlugin::_close_curve); + ClassDB::bind_method(_MD("_mode_changed"),&PathEditorPlugin::_mode_changed); + ClassDB::bind_method(_MD("_close_curve"),&PathEditorPlugin::_close_curve); } PathEditorPlugin* PathEditorPlugin::singleton=NULL; @@ -522,21 +530,21 @@ PathEditorPlugin::PathEditorPlugin(EditorNode *p_node) { editor=p_node; singleton=this; - path_material = Ref<FixedMaterial>( memnew( FixedMaterial )); - path_material->set_parameter( FixedMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.8) ); - path_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); + path_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + path_material->set_parameter( FixedSpatialMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.8) ); + path_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true); path_material->set_line_width(3); path_material->set_flag(Material::FLAG_DOUBLE_SIDED,true); path_material->set_flag(Material::FLAG_UNSHADED,true); - path_thin_material = Ref<FixedMaterial>( memnew( FixedMaterial )); - path_thin_material->set_parameter( FixedMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.4) ); - path_thin_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); + path_thin_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + path_thin_material->set_parameter( FixedSpatialMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.4) ); + path_thin_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true); path_thin_material->set_line_width(1); path_thin_material->set_flag(Material::FLAG_DOUBLE_SIDED,true); path_thin_material->set_flag(Material::FLAG_UNSHADED,true); -// SpatialEditor::get_singleton()->add_gizmo_plugin(this); + //SpatialEditor::get_singleton()->add_gizmo_plugin(this); sep = memnew( VSeparator); sep->hide(); @@ -593,3 +601,4 @@ PathEditorPlugin::~PathEditorPlugin() { } +#endif diff --git a/tools/editor/plugins/path_editor_plugin.h b/tools/editor/plugins/path_editor_plugin.h index 0afd957af7..79e978dc1d 100644 --- a/tools/editor/plugins/path_editor_plugin.h +++ b/tools/editor/plugins/path_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -32,9 +32,10 @@ #include "tools/editor/spatial_editor_gizmos.h" #include "scene/3d/path.h" +# if 0 class PathSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(PathSpatialGizmo,EditorSpatialGizmo); + GDCLASS(PathSpatialGizmo,EditorSpatialGizmo); Path* path; mutable Vector3 original; @@ -53,7 +54,7 @@ public: class PathEditorPlugin : public EditorPlugin { - OBJ_TYPE( PathEditorPlugin, EditorPlugin ); + GDCLASS( PathEditorPlugin, EditorPlugin ); Separator *sep; @@ -78,11 +79,11 @@ public: Path *get_edited_path() { return path; } static PathEditorPlugin* singleton; - Ref<FixedMaterial> path_material; - Ref<FixedMaterial> path_thin_material; - virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event); + Ref<FixedSpatialMaterial> path_material; + Ref<FixedSpatialMaterial> path_thin_material; + virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event); -// virtual bool forward_input_event(const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); } + //virtual bool forward_gui_input(const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); } virtual Ref<SpatialEditorGizmo> create_spatial_gizmo(Spatial* p_spatial); virtual String get_name() const { return "Path"; } bool has_main_screen() const { return false; } @@ -95,5 +96,5 @@ public: }; - +#endif #endif // PATH_EDITOR_PLUGIN_H diff --git a/tools/editor/plugins/polygon_2d_editor_plugin.cpp b/tools/editor/plugins/polygon_2d_editor_plugin.cpp index 19d1ccc06f..7958dce75a 100644 --- a/tools/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/tools/editor/plugins/polygon_2d_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,8 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ - #include "polygon_2d_editor_plugin.h" + #include "canvas_item_editor_plugin.h" #include "os/file_access.h" #include "tools/editor/editor_settings.h" @@ -102,8 +102,8 @@ void Polygon2DEditor::_menu_option(int p_option) { } - DVector<Vector2> points = node->get_polygon(); - DVector<Vector2> uvs = node->get_uv(); + PoolVector<Vector2> points = node->get_polygon(); + PoolVector<Vector2> uvs = node->get_uv(); if (uvs.size()!=points.size()) { undo_redo->create_action(TTR("Create UV Map")); undo_redo->add_do_method(node,"set_uv",points); @@ -119,10 +119,10 @@ void Polygon2DEditor::_menu_option(int p_option) { } break; case UVEDIT_POLYGON_TO_UV: { - DVector<Vector2> points = node->get_polygon(); + PoolVector<Vector2> points = node->get_polygon(); if (points.size()==0) break; - DVector<Vector2> uvs = node->get_uv(); + PoolVector<Vector2> uvs = node->get_uv(); undo_redo->create_action(TTR("Create UV Map")); undo_redo->add_do_method(node,"set_uv",points); undo_redo->add_undo_method(node,"set_uv",uvs); @@ -134,8 +134,8 @@ void Polygon2DEditor::_menu_option(int p_option) { } break; case UVEDIT_UV_TO_POLYGON: { - DVector<Vector2> points = node->get_polygon(); - DVector<Vector2> uvs = node->get_uv(); + PoolVector<Vector2> points = node->get_polygon(); + PoolVector<Vector2> uvs = node->get_uv(); if (uvs.size()==0) break; @@ -149,11 +149,11 @@ void Polygon2DEditor::_menu_option(int p_option) { } break; case UVEDIT_UV_CLEAR: { - DVector<Vector2> uvs = node->get_uv(); + PoolVector<Vector2> uvs = node->get_uv(); if (uvs.size()==0) break; undo_redo->create_action(TTR("Create UV Map")); - undo_redo->add_do_method(node,"set_uv",DVector<Vector2>()); + undo_redo->add_do_method(node,"set_uv",PoolVector<Vector2>()); undo_redo->add_undo_method(node,"set_uv",uvs); undo_redo->add_do_method(uv_edit_draw,"update"); undo_redo->add_undo_method(uv_edit_draw,"update"); @@ -216,7 +216,7 @@ void Polygon2DEditor::_wip_close() { edited_point=-1; } -bool Polygon2DEditor::forward_input_event(const InputEvent& p_event) { +bool Polygon2DEditor::forward_gui_input(const InputEvent& p_event) { if (node==NULL) return false; @@ -227,7 +227,7 @@ bool Polygon2DEditor::forward_input_event(const InputEvent& p_event) { const InputEventMouseButton &mb=p_event.mouse_button; - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Vector2 gpoint = Point2(mb.x,mb.y); @@ -239,7 +239,7 @@ bool Polygon2DEditor::forward_input_event(const InputEvent& p_event) { Vector<Vector2> poly = Variant(node->get_polygon()); //first check if a point is to be added (segment split) - real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8); + real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8); switch(mode) { @@ -463,7 +463,7 @@ void Polygon2DEditor::_canvas_draw() { poly=Variant(node->get_polygon()); - Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); Ref<Texture> handle= get_icon("EditorHandle","EditorIcons"); for(int i=0;i<poly.size();i++) { @@ -499,7 +499,7 @@ void Polygon2DEditor::_uv_mode(int p_mode) { void Polygon2DEditor::_uv_input(const InputEvent& p_input) { - Matrix32 mtx; + Transform2D mtx; mtx.elements[2]=-uv_draw_ofs; mtx.scale_basis(Vector2(uv_draw_zoom,uv_draw_zoom)); @@ -567,10 +567,10 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) { } else if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) { - uv_zoom->set_val( uv_zoom->get_val()/0.9 ); + uv_zoom->set_value( uv_zoom->get_value()/0.9 ); } else if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed) { - uv_zoom->set_val( uv_zoom->get_val()*0.9); + uv_zoom->set_value( uv_zoom->get_value()*0.9); } } else if (p_input.type==InputEvent::MOUSE_MOTION) { @@ -580,8 +580,8 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) { if (mm.button_mask&BUTTON_MASK_MIDDLE || Input::get_singleton()->is_key_pressed(KEY_SPACE)) { Vector2 drag(mm.relative_x,mm.relative_y); - uv_hscroll->set_val( uv_hscroll->get_val()-drag.x ); - uv_vscroll->set_val( uv_vscroll->get_val()-drag.y ); + uv_hscroll->set_value( uv_hscroll->get_value()-drag.x ); + uv_vscroll->set_value( uv_vscroll->get_value()-drag.y ); } else if (uv_drag) { @@ -593,13 +593,13 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) { case UV_MODE_EDIT_POINT: { - DVector<Vector2> uv_new=uv_prev; + PoolVector<Vector2> uv_new=uv_prev; uv_new.set( uv_drag_index, uv_new[uv_drag_index]+drag ); node->set_uv(uv_new); } break; case UV_MODE_MOVE: { - DVector<Vector2> uv_new=uv_prev; + PoolVector<Vector2> uv_new=uv_prev; for(int i=0;i<uv_new.size();i++) uv_new.set( i, uv_new[i]+drag ); @@ -610,7 +610,7 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) { case UV_MODE_ROTATE: { Vector2 center; - DVector<Vector2> uv_new=uv_prev; + PoolVector<Vector2> uv_new=uv_prev; for(int i=0;i<uv_new.size();i++) center+=uv_prev[i]; @@ -630,7 +630,7 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) { case UV_MODE_SCALE: { Vector2 center; - DVector<Vector2> uv_new=uv_prev; + PoolVector<Vector2> uv_new=uv_prev; for(int i=0;i<uv_new.size();i++) center+=uv_prev[i]; @@ -668,9 +668,9 @@ void Polygon2DEditor::_uv_scroll_changed(float) { if (updating_uv_scroll) return; - uv_draw_ofs.x=uv_hscroll->get_val(); - uv_draw_ofs.y=uv_vscroll->get_val(); - uv_draw_zoom=uv_zoom->get_val(); + uv_draw_ofs.x=uv_hscroll->get_value(); + uv_draw_ofs.y=uv_vscroll->get_value(); + uv_draw_zoom=uv_zoom->get_value(); uv_edit_draw->update(); } @@ -680,14 +680,13 @@ void Polygon2DEditor::_uv_draw() { if (base_tex.is_null()) return; - Matrix32 mtx; + Transform2D mtx; mtx.elements[2]=-uv_draw_ofs; mtx.scale_basis(Vector2(uv_draw_zoom,uv_draw_zoom)); - VS::get_singleton()->canvas_item_set_clip(uv_edit_draw->get_canvas_item(),true); VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(),mtx); uv_edit_draw->draw_texture(base_tex,Point2()); - VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(),Matrix32()); + VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(),Transform2D()); if (snap_show_grid) { Size2 s = uv_edit_draw->get_size(); @@ -716,7 +715,7 @@ void Polygon2DEditor::_uv_draw() { } } - DVector<Vector2> uvs = node->get_uv(); + PoolVector<Vector2> uvs = node->get_uv(); Ref<Texture> handle = get_icon("EditorHandle","EditorIcons"); Rect2 rect(Point2(),mtx.basis_xform(base_tex->get_size())); @@ -735,13 +734,13 @@ void Polygon2DEditor::_uv_draw() { uv_hscroll->set_min(rect.pos.x); uv_hscroll->set_max(rect.pos.x+rect.size.x); uv_hscroll->set_page(uv_edit_draw->get_size().x); - uv_hscroll->set_val(uv_draw_ofs.x); + uv_hscroll->set_value(uv_draw_ofs.x); uv_hscroll->set_step(0.001); uv_vscroll->set_min(rect.pos.y); uv_vscroll->set_max(rect.pos.y+rect.size.y); uv_vscroll->set_page(uv_edit_draw->get_size().y); - uv_vscroll->set_val(uv_draw_ofs.y); + uv_vscroll->set_value(uv_draw_ofs.y); uv_vscroll->set_step(0.001); updating_uv_scroll=false; @@ -776,19 +775,19 @@ void Polygon2DEditor::edit(Node *p_collision_polygon) { void Polygon2DEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_menu_option"),&Polygon2DEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_canvas_draw"),&Polygon2DEditor::_canvas_draw); - ObjectTypeDB::bind_method(_MD("_uv_mode"),&Polygon2DEditor::_uv_mode); - ObjectTypeDB::bind_method(_MD("_uv_draw"),&Polygon2DEditor::_uv_draw); - ObjectTypeDB::bind_method(_MD("_uv_input"),&Polygon2DEditor::_uv_input); - ObjectTypeDB::bind_method(_MD("_uv_scroll_changed"),&Polygon2DEditor::_uv_scroll_changed); - ObjectTypeDB::bind_method(_MD("_node_removed"),&Polygon2DEditor::_node_removed); - ObjectTypeDB::bind_method(_MD("_set_use_snap"),&Polygon2DEditor::_set_use_snap); - ObjectTypeDB::bind_method(_MD("_set_show_grid"),&Polygon2DEditor::_set_show_grid); - ObjectTypeDB::bind_method(_MD("_set_snap_off_x"),&Polygon2DEditor::_set_snap_off_x); - ObjectTypeDB::bind_method(_MD("_set_snap_off_y"),&Polygon2DEditor::_set_snap_off_y); - ObjectTypeDB::bind_method(_MD("_set_snap_step_x"),&Polygon2DEditor::_set_snap_step_x); - ObjectTypeDB::bind_method(_MD("_set_snap_step_y"),&Polygon2DEditor::_set_snap_step_y); + ClassDB::bind_method(_MD("_menu_option"),&Polygon2DEditor::_menu_option); + ClassDB::bind_method(_MD("_canvas_draw"),&Polygon2DEditor::_canvas_draw); + ClassDB::bind_method(_MD("_uv_mode"),&Polygon2DEditor::_uv_mode); + ClassDB::bind_method(_MD("_uv_draw"),&Polygon2DEditor::_uv_draw); + ClassDB::bind_method(_MD("_uv_input"),&Polygon2DEditor::_uv_input); + ClassDB::bind_method(_MD("_uv_scroll_changed"),&Polygon2DEditor::_uv_scroll_changed); + ClassDB::bind_method(_MD("_node_removed"),&Polygon2DEditor::_node_removed); + ClassDB::bind_method(_MD("_set_use_snap"),&Polygon2DEditor::_set_use_snap); + ClassDB::bind_method(_MD("_set_show_grid"),&Polygon2DEditor::_set_show_grid); + ClassDB::bind_method(_MD("_set_snap_off_x"),&Polygon2DEditor::_set_snap_off_x); + ClassDB::bind_method(_MD("_set_snap_off_y"),&Polygon2DEditor::_set_snap_off_y); + ClassDB::bind_method(_MD("_set_snap_step_x"),&Polygon2DEditor::_set_snap_step_x); + ClassDB::bind_method(_MD("_set_snap_step_y"),&Polygon2DEditor::_set_snap_step_y); } @@ -840,7 +839,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { options->set_area_as_parent_rect(); options->set_text("Polygon"); //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); #endif mode = MODE_EDIT; @@ -850,11 +849,11 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { uv_edit = memnew( AcceptDialog ); add_child(uv_edit); uv_edit->set_title(TTR("Polygon 2D UV Editor")); - uv_edit->set_self_opacity(0.9); + uv_edit->set_self_modulate(Color(1,1,1,0.9)); VBoxContainer *uv_main_vb = memnew( VBoxContainer ); uv_edit->add_child(uv_main_vb); - uv_edit->set_child_rect(uv_main_vb); + //uv_edit->set_child_rect(uv_main_vb); HBoxContainer *uv_mode_hb = memnew( HBoxContainer ); uv_main_vb->add_child(uv_mode_hb); for(int i=0;i<UV_MODE_MAX;i++) { @@ -885,7 +884,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { uv_menu->get_popup()->add_item(TTR("UV->Polygon"),UVEDIT_UV_TO_POLYGON); uv_menu->get_popup()->add_separator(); uv_menu->get_popup()->add_item(TTR("Clear UV"),UVEDIT_UV_CLEAR); - uv_menu->get_popup()->connect("item_pressed",this,"_menu_option"); + uv_menu->get_popup()->connect("id_pressed",this,"_menu_option"); uv_mode_hb->add_child( memnew( VSeparator )); @@ -914,7 +913,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { sb_off_x->set_min(-256); sb_off_x->set_max(256); sb_off_x->set_step(1); - sb_off_x->set_val(snap_offset.x); + sb_off_x->set_value(snap_offset.x); sb_off_x->set_suffix("px"); sb_off_x->connect("value_changed", this, "_set_snap_off_x"); uv_mode_hb->add_child(sb_off_x); @@ -923,7 +922,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { sb_off_y->set_min(-256); sb_off_y->set_max(256); sb_off_y->set_step(1); - sb_off_y->set_val(snap_offset.y); + sb_off_y->set_value(snap_offset.y); sb_off_y->set_suffix("px"); sb_off_y->connect("value_changed", this, "_set_snap_off_y"); uv_mode_hb->add_child(sb_off_y); @@ -935,7 +934,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { sb_step_x->set_min(-256); sb_step_x->set_max(256); sb_step_x->set_step(1); - sb_step_x->set_val(snap_step.x); + sb_step_x->set_value(snap_step.x); sb_step_x->set_suffix("px"); sb_step_x->connect("value_changed", this, "_set_snap_step_x"); uv_mode_hb->add_child(sb_step_x); @@ -944,18 +943,18 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { sb_step_y->set_min(-256); sb_step_y->set_max(256); sb_step_y->set_step(1); - sb_step_y->set_val(snap_step.y); + sb_step_y->set_value(snap_step.y); sb_step_y->set_suffix("px"); sb_step_y->connect("value_changed", this, "_set_snap_step_y"); uv_mode_hb->add_child(sb_step_y); uv_mode_hb->add_child( memnew( VSeparator )); - uv_icon_zoom = memnew( TextureFrame ); + uv_icon_zoom = memnew( TextureRect ); uv_mode_hb->add_child( uv_icon_zoom ); uv_zoom = memnew( HSlider ); uv_zoom->set_min(0.01); uv_zoom->set_max(4); - uv_zoom->set_val(1); + uv_zoom->set_value(1); uv_zoom->set_step(0.01); uv_mode_hb->add_child(uv_zoom); uv_zoom->set_custom_minimum_size(Size2(200,0)); @@ -975,7 +974,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { uv_hscroll->connect("value_changed",this,"_uv_scroll_changed"); uv_edit_draw->connect("draw",this,"_uv_draw"); - uv_edit_draw->connect("input_event",this,"_uv_input"); + uv_edit_draw->connect("gui_input",this,"_uv_input"); uv_draw_zoom=1.0; uv_drag_index=-1; uv_drag=false; @@ -984,6 +983,8 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) { error = memnew( AcceptDialog); add_child(error); + uv_edit_draw->set_clip_contents(true); + } @@ -995,7 +996,7 @@ void Polygon2DEditorPlugin::edit(Object *p_object) { bool Polygon2DEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("Polygon2D"); + return p_object->is_class("Polygon2D"); } void Polygon2DEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/polygon_2d_editor_plugin.h b/tools/editor/plugins/polygon_2d_editor_plugin.h index 33bae94340..6011ee1f87 100644 --- a/tools/editor/plugins/polygon_2d_editor_plugin.h +++ b/tools/editor/plugins/polygon_2d_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -42,7 +42,7 @@ class CanvasItemEditor; class Polygon2DEditor : public HBoxContainer { - OBJ_TYPE(Polygon2DEditor, HBoxContainer ); + GDCLASS(Polygon2DEditor, HBoxContainer ); UndoRedo *undo_redo; enum Mode { @@ -77,11 +77,11 @@ class Polygon2DEditor : public HBoxContainer { HScrollBar *uv_hscroll; VScrollBar *uv_vscroll; MenuButton *uv_menu; - TextureFrame *uv_icon_zoom; + TextureRect *uv_icon_zoom; Vector2 uv_draw_ofs; float uv_draw_zoom; - DVector<Vector2> uv_prev; + PoolVector<Vector2> uv_prev; int uv_drag_index; bool uv_drag; UVMode uv_move_current; @@ -137,21 +137,21 @@ protected: public: - bool forward_input_event(const InputEvent& p_event); + bool forward_gui_input(const InputEvent& p_event); void edit(Node *p_collision_polygon); Polygon2DEditor(EditorNode *p_editor); }; class Polygon2DEditorPlugin : public EditorPlugin { - OBJ_TYPE( Polygon2DEditorPlugin, EditorPlugin ); + GDCLASS( Polygon2DEditorPlugin, EditorPlugin ); Polygon2DEditor *collision_polygon_editor; EditorNode *editor; public: - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); } + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); } virtual String get_name() const { return "Polygon2D"; } bool has_main_screen() const { return false; } diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.cpp b/tools/editor/plugins/resource_preloader_editor_plugin.cpp index cce0ba3d62..cb139cbe24 100644 --- a/tools/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/tools/editor/plugins/resource_preloader_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,14 +27,13 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "resource_preloader_editor_plugin.h" + #include "io/resource_loader.h" #include "globals.h" #include "tools/editor/editor_settings.h" -#include "scene/resources/scene_preloader.h" - -void ResourcePreloaderEditor::_input_event(InputEvent p_event) { +void ResourcePreloaderEditor::_gui_input(InputEvent p_event) { } @@ -52,7 +51,7 @@ void ResourcePreloaderEditor::_notification(int p_what) { if (p_what==NOTIFICATION_READY) { -// NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true); + //NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true); } if (p_what==NOTIFICATION_DRAW) { @@ -79,7 +78,7 @@ void ResourcePreloaderEditor::_files_load_request(const Vector<String>& p_paths) } - String basename = path.get_file().basename(); + String basename = path.get_file().get_basename(); String name=basename; int counter=1; while(preloader->has_resource(name)) { @@ -179,7 +178,7 @@ void ResourcePreloaderEditor::_paste_pressed() { if (name=="") name=r->get_path().get_file(); if (name=="") - name=r->get_type(); + name=r->get_class(); String basename = name; int counter=1; @@ -248,7 +247,7 @@ void ResourcePreloaderEditor::_update_library() { ERR_CONTINUE(r.is_null()); ti->set_tooltip(0,r->get_path()); - String type = r->get_type(); + String type = r->get_class(); ti->set_text(1,type); ti->set_selectable(1,false); @@ -347,7 +346,7 @@ void ResourcePreloaderEditor::drop_data_fw(const Point2& p_point,const Variant& if (r->get_name()!="") { basename=r->get_name(); } else if (r->get_path().is_resource_file()) { - basename = r->get_path().basename(); + basename = r->get_path().get_basename(); } else { basename="Resource"; } @@ -381,19 +380,19 @@ void ResourcePreloaderEditor::drop_data_fw(const Point2& p_point,const Variant& void ResourcePreloaderEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&ResourcePreloaderEditor::_input_event); - ObjectTypeDB::bind_method(_MD("_load_pressed"),&ResourcePreloaderEditor::_load_pressed); - ObjectTypeDB::bind_method(_MD("_item_edited"),&ResourcePreloaderEditor::_item_edited); - ObjectTypeDB::bind_method(_MD("_delete_pressed"),&ResourcePreloaderEditor::_delete_pressed); - ObjectTypeDB::bind_method(_MD("_paste_pressed"),&ResourcePreloaderEditor::_paste_pressed); - ObjectTypeDB::bind_method(_MD("_delete_confirm_pressed"),&ResourcePreloaderEditor::_delete_confirm_pressed); - ObjectTypeDB::bind_method(_MD("_files_load_request"),&ResourcePreloaderEditor::_files_load_request); - ObjectTypeDB::bind_method(_MD("_update_library"),&ResourcePreloaderEditor::_update_library); + ClassDB::bind_method(_MD("_gui_input"),&ResourcePreloaderEditor::_gui_input); + ClassDB::bind_method(_MD("_load_pressed"),&ResourcePreloaderEditor::_load_pressed); + ClassDB::bind_method(_MD("_item_edited"),&ResourcePreloaderEditor::_item_edited); + ClassDB::bind_method(_MD("_delete_pressed"),&ResourcePreloaderEditor::_delete_pressed); + ClassDB::bind_method(_MD("_paste_pressed"),&ResourcePreloaderEditor::_paste_pressed); + ClassDB::bind_method(_MD("_delete_confirm_pressed"),&ResourcePreloaderEditor::_delete_confirm_pressed); + ClassDB::bind_method(_MD("_files_load_request"),&ResourcePreloaderEditor::_files_load_request); + ClassDB::bind_method(_MD("_update_library"),&ResourcePreloaderEditor::_update_library); - ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &ResourcePreloaderEditor::get_drag_data_fw); - ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &ResourcePreloaderEditor::can_drop_data_fw); - ObjectTypeDB::bind_method(_MD("drop_data_fw"), &ResourcePreloaderEditor::drop_data_fw); + ClassDB::bind_method(_MD("get_drag_data_fw"), &ResourcePreloaderEditor::get_drag_data_fw); + ClassDB::bind_method(_MD("can_drop_data_fw"), &ResourcePreloaderEditor::can_drop_data_fw); + ClassDB::bind_method(_MD("drop_data_fw"), &ResourcePreloaderEditor::drop_data_fw); } @@ -462,7 +461,7 @@ void ResourcePreloaderEditorPlugin::edit(Object *p_object) { bool ResourcePreloaderEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("ResourcePreloader"); + return p_object->is_class("ResourcePreloader"); } void ResourcePreloaderEditorPlugin::make_visible(bool p_visible) { @@ -471,14 +470,14 @@ void ResourcePreloaderEditorPlugin::make_visible(bool p_visible) { //preloader_editor->show(); button->show(); editor->make_bottom_panel_item_visible(preloader_editor); -// preloader_editor->set_process(true); + //preloader_editor->set_process(true); } else { - if (preloader_editor->is_visible()) + if (preloader_editor->is_visible_in_tree()) editor->hide_bottom_panel(); button->hide(); //preloader_editor->hide(); -// preloader_editor->set_process(false); + //preloader_editor->set_process(false); } } @@ -492,8 +491,8 @@ ResourcePreloaderEditorPlugin::ResourcePreloaderEditorPlugin(EditorNode *p_node) button=editor->add_bottom_panel_item("ResourcePreloader",preloader_editor); button->hide(); -// preloader_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END); -// preloader_editor->set_margin( MARGIN_TOP, 120 ); + //preloader_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END); + //preloader_editor->set_margin( MARGIN_TOP, 120 ); diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.h b/tools/editor/plugins/resource_preloader_editor_plugin.h index 4f0cb4be37..6990301ded 100644 --- a/tools/editor/plugins/resource_preloader_editor_plugin.h +++ b/tools/editor/plugins/resource_preloader_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ class ResourcePreloaderEditor : public PanelContainer { - OBJ_TYPE(ResourcePreloaderEditor, PanelContainer ); + GDCLASS(ResourcePreloaderEditor, PanelContainer ); Button *load; Button *_delete; @@ -74,7 +74,7 @@ class ResourcePreloaderEditor : public PanelContainer { protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -86,7 +86,7 @@ public: class ResourcePreloaderEditorPlugin : public EditorPlugin { - OBJ_TYPE( ResourcePreloaderEditorPlugin, EditorPlugin ); + GDCLASS( ResourcePreloaderEditorPlugin, EditorPlugin ); ResourcePreloaderEditor *preloader_editor; EditorNode *editor; diff --git a/tools/editor/plugins/rich_text_editor_plugin.cpp b/tools/editor/plugins/rich_text_editor_plugin.cpp index bec48ca293..8629d6ec8f 100644 --- a/tools/editor/plugins/rich_text_editor_plugin.cpp +++ b/tools/editor/plugins/rich_text_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "rich_text_editor_plugin.h" + #include "os/file_access.h" #include "canvas_item_editor_plugin.h" @@ -89,8 +90,8 @@ void RichTextEditor::_menu_option(int p_option) { void RichTextEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_menu_option"),&RichTextEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_file_selected"),&RichTextEditor::_file_selected); + ClassDB::bind_method(_MD("_menu_option"),&RichTextEditor::_menu_option); + ClassDB::bind_method(_MD("_file_selected"),&RichTextEditor::_file_selected); } @@ -110,7 +111,7 @@ RichTextEditor::RichTextEditor() { options->get_popup()->add_item(TTR("Parse BBCode"),PARSE_BBCODE); options->get_popup()->add_item(TTR("Clear"),CLEAR); - options->get_popup()->connect("item_pressed", this,"_menu_option"); + options->get_popup()->connect("id_pressed", this,"_menu_option"); file_dialog = memnew( EditorFileDialog ); add_child(file_dialog); file_dialog->add_filter("*.txt"); @@ -126,7 +127,7 @@ void RichTextEditorPlugin::edit(Object *p_object) { bool RichTextEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("RichTextLabel"); + return p_object->is_class("RichTextLabel"); } void RichTextEditorPlugin::make_visible(bool p_visible) { diff --git a/tools/editor/plugins/rich_text_editor_plugin.h b/tools/editor/plugins/rich_text_editor_plugin.h index ae1d04be01..cf97d7517c 100644 --- a/tools/editor/plugins/rich_text_editor_plugin.h +++ b/tools/editor/plugins/rich_text_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ class RichTextEditor : public Control { - OBJ_TYPE(RichTextEditor, Control ); + GDCLASS(RichTextEditor, Control ); friend class RichTextEditorPlugin; @@ -70,7 +70,7 @@ public: class RichTextEditorPlugin : public EditorPlugin { - OBJ_TYPE( RichTextEditorPlugin, EditorPlugin ); + GDCLASS( RichTextEditorPlugin, EditorPlugin ); RichTextEditor *rich_text_editor; EditorNode *editor; diff --git a/tools/editor/plugins/sample_editor_plugin.cpp b/tools/editor/plugins/sample_editor_plugin.cpp index 7965fa54ae..c333ba017f 100644 --- a/tools/editor/plugins/sample_editor_plugin.cpp +++ b/tools/editor/plugins/sample_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,6 +28,7 @@ /*************************************************************************/ #include "sample_editor_plugin.h" +#if 0 #include "io/resource_loader.h" #include "globals.h" #include "tools/editor/editor_settings.h" @@ -35,7 +36,7 @@ -void SampleEditor::_input_event(InputEvent p_event) { +void SampleEditor::_gui_input(InputEvent p_event) { } @@ -77,15 +78,15 @@ void SampleEditor::_stop_pressed() { void SampleEditor::generate_preview_texture(const Ref<Sample>& p_sample,Ref<ImageTexture> &p_texture) { - DVector<uint8_t> data = p_sample->get_data(); + PoolVector<uint8_t> data = p_sample->get_data(); - DVector<uint8_t> img; + PoolVector<uint8_t> img; int w = p_texture->get_width(); int h = p_texture->get_height(); img.resize(w*h*3); - DVector<uint8_t>::Write imgdata = img.write(); + PoolVector<uint8_t>::Write imgdata = img.write(); uint8_t * imgw = imgdata.ptr(); - DVector<uint8_t>::Read sampledata = data.read(); + PoolVector<uint8_t>::Read sampledata = data.read(); const uint8_t *sdata=sampledata.ptr(); bool stereo = p_sample->is_stereo(); @@ -308,10 +309,10 @@ void SampleEditor::generate_preview_texture(const Ref<Sample>& p_sample,Ref<Imag } } - imgdata = DVector<uint8_t>::Write(); + imgdata = PoolVector<uint8_t>::Write(); - p_texture->set_data(Image(w,h,0,Image::FORMAT_RGB,img)); + p_texture->set_data(Image(w,h,0,Image::FORMAT_RGB8,img)); } @@ -348,9 +349,9 @@ void SampleEditor::edit(Ref<Sample> p_sample) { void SampleEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&SampleEditor::_input_event); - ObjectTypeDB::bind_method(_MD("_play_pressed"),&SampleEditor::_play_pressed); - ObjectTypeDB::bind_method(_MD("_stop_pressed"),&SampleEditor::_stop_pressed); + ClassDB::bind_method(_MD("_gui_input"),&SampleEditor::_gui_input); + ClassDB::bind_method(_MD("_play_pressed"),&SampleEditor::_play_pressed); + ClassDB::bind_method(_MD("_stop_pressed"),&SampleEditor::_stop_pressed); } @@ -361,7 +362,7 @@ SampleEditor::SampleEditor() { add_style_override("panel", get_stylebox("panel","Panel")); library = Ref<SampleLibrary>(memnew(SampleLibrary)); player->set_sample_library(library); - sample_texframe = memnew( TextureFrame ); + sample_texframe = memnew( TextureRect ); add_child(sample_texframe); sample_texframe->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN,5); sample_texframe->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,5); @@ -392,7 +393,7 @@ SampleEditor::SampleEditor() { add_child(stop); peakdisplay=Ref<ImageTexture>( memnew( ImageTexture) ); - peakdisplay->create( EDITOR_DEF("audio/sample_editor_preview_width",512),EDITOR_DEF("audio/sample_editor_preview_height",128),Image::FORMAT_RGB); + peakdisplay->create( EDITOR_DEF("editors/sample_editor/preview_width",512),EDITOR_DEF("editors/sample_editor/preview_height",128),Image::FORMAT_RGB8); sample_texframe->set_expand(true); sample_texframe->set_texture(peakdisplay); @@ -415,18 +416,18 @@ void SampleEditorPlugin::edit(Object *p_object) { bool SampleEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("Sample"); + return p_object->is_class("Sample"); } void SampleEditorPlugin::make_visible(bool p_visible) { if (p_visible) { sample_editor->show(); -// sample_editor->set_process(true); + //sample_editor->set_process(true); } else { sample_editor->hide(); -// sample_editor->set_process(false); + //sample_editor->set_process(false); } } @@ -447,4 +448,4 @@ SampleEditorPlugin::~SampleEditorPlugin() { } - +#endif diff --git a/tools/editor/plugins/sample_editor_plugin.h b/tools/editor/plugins/sample_editor_plugin.h index 22dc75b53b..651cd14a84 100644 --- a/tools/editor/plugins/sample_editor_plugin.h +++ b/tools/editor/plugins/sample_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,7 +29,7 @@ #ifndef SAMPLE_EDITOR_PLUGIN_H #define SAMPLE_EDITOR_PLUGIN_H - +#if 0 #include "tools/editor/editor_plugin.h" #include "tools/editor/editor_node.h" #include "scene/audio/sample_player.h" @@ -39,7 +39,7 @@ class SampleEditor : public Panel { - OBJ_TYPE(SampleEditor, Panel ); + GDCLASS(SampleEditor, Panel ); SamplePlayer *player; @@ -47,7 +47,7 @@ class SampleEditor : public Panel { Ref<ImageTexture> peakdisplay; Ref<Sample> sample; Ref<SampleLibrary> library; - TextureFrame *sample_texframe; + TextureRect *sample_texframe; Button *stop; Button *play; @@ -57,7 +57,7 @@ class SampleEditor : public Panel { protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -69,7 +69,7 @@ public: class SampleEditorPlugin : public EditorPlugin { - OBJ_TYPE( SampleEditorPlugin, EditorPlugin ); + GDCLASS( SampleEditorPlugin, EditorPlugin ); SampleEditor *sample_editor; EditorNode *editor; @@ -87,4 +87,6 @@ public: }; +#endif + #endif // SAMPLE_EDITOR_PLUGIN_H diff --git a/tools/editor/plugins/sample_library_editor_plugin.cpp b/tools/editor/plugins/sample_library_editor_plugin.cpp index 2a6940332c..116c5d11b6 100644 --- a/tools/editor/plugins/sample_library_editor_plugin.cpp +++ b/tools/editor/plugins/sample_library_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,6 +26,8 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ + +#if 0 #include "sample_library_editor_plugin.h" #include "io/resource_loader.h" @@ -35,7 +37,7 @@ #include "sample_editor_plugin.h" -void SampleLibraryEditor::_input_event(InputEvent p_event) { +void SampleLibraryEditor::_gui_input(InputEvent p_event) { } @@ -58,7 +60,7 @@ void SampleLibraryEditor::_notification(int p_what) { if (p_what==NOTIFICATION_READY) { -// NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true); + //NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true); } if (p_what==NOTIFICATION_DRAW) { @@ -66,7 +68,7 @@ void SampleLibraryEditor::_notification(int p_what) { } } -void SampleLibraryEditor::_file_load_request(const DVector<String>& p_path) { +void SampleLibraryEditor::_file_load_request(const PoolVector<String>& p_path) { for(int i=0;i<p_path.size();i++) { @@ -81,7 +83,7 @@ void SampleLibraryEditor::_file_load_request(const DVector<String>& p_path) { dialog->popup_centered_minsize(); return; ///beh should show an error i guess } - String basename = path.get_file().basename(); + String basename = path.get_file().get_basename(); String name=basename; int counter=0; while(sample_library->has_sample(name)) { @@ -236,7 +238,7 @@ void SampleLibraryEditor::_update_library() { // Preview/edit Ref<ImageTexture> preview( memnew( ImageTexture )); - preview->create(128,16,Image::FORMAT_RGB); + preview->create(128,16,Image::FORMAT_RGB8); SampleEditor::generate_preview_texture(smp,preview); ti->set_cell_mode(1,TreeItem::CELL_MODE_ICON); ti->set_selectable(1,false); @@ -376,7 +378,7 @@ void SampleLibraryEditor::drop_data_fw(const Point2& p_point,const Variant& p_da if (sample->get_name()!="") { basename=sample->get_name(); } else if (sample->get_path().is_resource_file()) { - basename = sample->get_path().basename(); + basename = sample->get_path().get_basename(); } else { basename="Sample"; } @@ -400,7 +402,7 @@ void SampleLibraryEditor::drop_data_fw(const Point2& p_point,const Variant& p_da if (String(d["type"])=="files") { - DVector<String> files = d["files"]; + PoolVector<String> files = d["files"]; _file_load_request(files); @@ -411,17 +413,17 @@ void SampleLibraryEditor::drop_data_fw(const Point2& p_point,const Variant& p_da void SampleLibraryEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&SampleLibraryEditor::_input_event); - ObjectTypeDB::bind_method(_MD("_load_pressed"),&SampleLibraryEditor::_load_pressed); - ObjectTypeDB::bind_method(_MD("_item_edited"),&SampleLibraryEditor::_item_edited); - ObjectTypeDB::bind_method(_MD("_delete_pressed"),&SampleLibraryEditor::_delete_pressed); - ObjectTypeDB::bind_method(_MD("_file_load_request"),&SampleLibraryEditor::_file_load_request); - ObjectTypeDB::bind_method(_MD("_update_library"),&SampleLibraryEditor::_update_library); - ObjectTypeDB::bind_method(_MD("_button_pressed"),&SampleLibraryEditor::_button_pressed); + ClassDB::bind_method(_MD("_gui_input"),&SampleLibraryEditor::_gui_input); + ClassDB::bind_method(_MD("_load_pressed"),&SampleLibraryEditor::_load_pressed); + ClassDB::bind_method(_MD("_item_edited"),&SampleLibraryEditor::_item_edited); + ClassDB::bind_method(_MD("_delete_pressed"),&SampleLibraryEditor::_delete_pressed); + ClassDB::bind_method(_MD("_file_load_request"),&SampleLibraryEditor::_file_load_request); + ClassDB::bind_method(_MD("_update_library"),&SampleLibraryEditor::_update_library); + ClassDB::bind_method(_MD("_button_pressed"),&SampleLibraryEditor::_button_pressed); - ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &SampleLibraryEditor::get_drag_data_fw); - ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &SampleLibraryEditor::can_drop_data_fw); - ObjectTypeDB::bind_method(_MD("drop_data_fw"), &SampleLibraryEditor::drop_data_fw); + ClassDB::bind_method(_MD("get_drag_data_fw"), &SampleLibraryEditor::get_drag_data_fw); + ClassDB::bind_method(_MD("can_drop_data_fw"), &SampleLibraryEditor::can_drop_data_fw); + ClassDB::bind_method(_MD("drop_data_fw"), &SampleLibraryEditor::drop_data_fw); } @@ -497,7 +499,7 @@ void SampleLibraryEditorPlugin::edit(Object *p_object) { bool SampleLibraryEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("SampleLibrary"); + return p_object->is_class("SampleLibrary"); } void SampleLibraryEditorPlugin::make_visible(bool p_visible) { @@ -506,14 +508,14 @@ void SampleLibraryEditorPlugin::make_visible(bool p_visible) { //sample_library_editor->show(); button->show(); editor->make_bottom_panel_item_visible(sample_library_editor); -// sample_library_editor->set_process(true); + //sample_library_editor->set_process(true); } else { - if (sample_library_editor->is_visible()) + if (sample_library_editor->is_visible_in_tree()) editor->hide_bottom_panel(); button->hide(); -// sample_library_editor->set_process(false); + //sample_library_editor->set_process(false); } } @@ -529,8 +531,8 @@ SampleLibraryEditorPlugin::SampleLibraryEditorPlugin(EditorNode *p_node) { button->hide(); //sample_library_editor->set_area_as_parent_rect(); -// sample_library_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END); -// sample_library_editor->set_margin( MARGIN_TOP, 120 ); + //sample_library_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END); + //sample_library_editor->set_margin( MARGIN_TOP, 120 ); //sample_library_editor->hide(); @@ -541,3 +543,4 @@ SampleLibraryEditorPlugin::SampleLibraryEditorPlugin(EditorNode *p_node) { SampleLibraryEditorPlugin::~SampleLibraryEditorPlugin() { } +#endif diff --git a/tools/editor/plugins/sample_library_editor_plugin.h b/tools/editor/plugins/sample_library_editor_plugin.h index f9fb184b7c..35028df859 100644 --- a/tools/editor/plugins/sample_library_editor_plugin.h +++ b/tools/editor/plugins/sample_library_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -30,7 +30,7 @@ #define SAMPLE_LIBRARY_EDITOR_PLUGIN_H - +#if 0 #include "tools/editor/editor_plugin.h" #include "tools/editor/editor_node.h" #include "scene/audio/sample_player.h" @@ -42,7 +42,7 @@ class SampleLibraryEditor : public Panel { - OBJ_TYPE(SampleLibraryEditor, Panel ); + GDCLASS(SampleLibraryEditor, Panel ); @@ -59,7 +59,7 @@ class SampleLibraryEditor : public Panel { void _load_pressed(); - void _file_load_request(const DVector<String>& p_path); + void _file_load_request(const PoolVector<String>& p_path); void _delete_pressed(); void _update_library(); void _item_edited(); @@ -74,7 +74,7 @@ class SampleLibraryEditor : public Panel { protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -85,7 +85,7 @@ public: class SampleLibraryEditorPlugin : public EditorPlugin { - OBJ_TYPE( SampleLibraryEditorPlugin, EditorPlugin ); + GDCLASS( SampleLibraryEditorPlugin, EditorPlugin ); SampleLibraryEditor *sample_library_editor; EditorNode *editor; @@ -104,4 +104,5 @@ public: }; +#endif #endif // SAMPLE_LIBRARY_EDITOR_PLUGIN_H diff --git a/tools/editor/plugins/sample_player_editor_plugin.cpp b/tools/editor/plugins/sample_player_editor_plugin.cpp index 3085ad87d8..dd6450bfe7 100644 --- a/tools/editor/plugins/sample_player_editor_plugin.cpp +++ b/tools/editor/plugins/sample_player_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,7 +26,11 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ + +#if 0 #include "sample_player_editor_plugin.h" + + #include "scene/resources/sample_library.h" @@ -50,8 +54,8 @@ void SamplePlayerEditor::_node_removed(Node *p_node) { void SamplePlayerEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_play"),&SamplePlayerEditor::_play); - ObjectTypeDB::bind_method(_MD("_stop"),&SamplePlayerEditor::_stop); + ClassDB::bind_method(_MD("_play"),&SamplePlayerEditor::_play); + ClassDB::bind_method(_MD("_stop"),&SamplePlayerEditor::_stop); } @@ -89,7 +93,7 @@ void SamplePlayerEditor::_update_sample_library() { Ref<SampleLibrary> sl = node->call("get_sample_library"); if (sl.is_null()) { samples->add_item("<NO SAMPLE LIBRARY>"); - return; //no sample library;; + return; //no sample library; } List<StringName> samplenames; @@ -153,7 +157,7 @@ void SamplePlayerEditorPlugin::edit(Object *p_object) { bool SamplePlayerEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("SamplePlayer2D") || p_object->is_type("SamplePlayer") || p_object->is_type("SpatialSamplePlayer"); + return p_object->is_class("SamplePlayer2D") || p_object->is_class("SamplePlayer") || p_object->is_class("SpatialSamplePlayer"); } void SamplePlayerEditorPlugin::make_visible(bool p_visible) { @@ -196,3 +200,4 @@ SamplePlayerEditorPlugin::~SamplePlayerEditorPlugin() } +#endif diff --git a/tools/editor/plugins/sample_player_editor_plugin.h b/tools/editor/plugins/sample_player_editor_plugin.h index 013b042487..ba1684497c 100644 --- a/tools/editor/plugins/sample_player_editor_plugin.h +++ b/tools/editor/plugins/sample_player_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,6 +29,8 @@ #ifndef SAMPLE_PLAYER_EDITOR_PLUGIN_H #define SAMPLE_PLAYER_EDITOR_PLUGIN_H +#if 0 + #include "tools/editor/editor_plugin.h" #include "tools/editor/editor_node.h" #include "scene/3d/spatial_sample_player.h" @@ -41,7 +43,7 @@ class SamplePlayerEditor : public Control { - OBJ_TYPE(SamplePlayerEditor, Control ); + GDCLASS(SamplePlayerEditor, Control ); Panel *panel; Button * play; @@ -66,7 +68,7 @@ public: class SamplePlayerEditorPlugin : public EditorPlugin { - OBJ_TYPE( SamplePlayerEditorPlugin, EditorPlugin ); + GDCLASS( SamplePlayerEditorPlugin, EditorPlugin ); SamplePlayerEditor *sample_player_editor; EditorNode *editor; @@ -84,4 +86,5 @@ public: }; +#endif #endif // SAMPLE_PLAYER_EDITOR_PLUGIN_H diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp index e7170a23f3..4738b348f4 100644 --- a/tools/editor/plugins/script_editor_plugin.cpp +++ b/tools/editor/plugins/script_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "script_editor_plugin.h" + #include "tools/editor/editor_settings.h" #include "io/resource_loader.h" #include "io/resource_saver.h" @@ -183,7 +184,7 @@ void ScriptEditorQuickOpen::_sbox_input(const InputEvent& p_ie) { p_ie.key.scancode == KEY_PAGEUP || p_ie.key.scancode == KEY_PAGEDOWN ) ) { - search_options->call("_input_event",p_ie); + search_options->call("_gui_input",p_ie); search_box->accept_event(); } @@ -240,9 +241,9 @@ void ScriptEditorQuickOpen::_notification(int p_what) { void ScriptEditorQuickOpen::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_text_changed"),&ScriptEditorQuickOpen::_text_changed); - ObjectTypeDB::bind_method(_MD("_confirmed"),&ScriptEditorQuickOpen::_confirmed); - ObjectTypeDB::bind_method(_MD("_sbox_input"),&ScriptEditorQuickOpen::_sbox_input); + ClassDB::bind_method(_MD("_text_changed"),&ScriptEditorQuickOpen::_text_changed); + ClassDB::bind_method(_MD("_confirmed"),&ScriptEditorQuickOpen::_confirmed); + ClassDB::bind_method(_MD("_sbox_input"),&ScriptEditorQuickOpen::_sbox_input); ADD_SIGNAL(MethodInfo("goto_line",PropertyInfo(Variant::INT,"line"))); @@ -254,11 +255,11 @@ ScriptEditorQuickOpen::ScriptEditorQuickOpen() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); search_box = memnew( LineEdit ); vbc->add_margin_child(TTR("Search:"),search_box); search_box->connect("text_changed",this,"_text_changed"); - search_box->connect("input_event",this,"_sbox_input"); + search_box->connect("gui_input",this,"_sbox_input"); search_options = memnew( Tree ); vbc->add_margin_child(TTR("Matches:"),search_options,true); get_ok()->set_text(TTR("Open")); @@ -278,7 +279,7 @@ ScriptEditor *ScriptEditor::script_editor=NULL; String ScriptEditor::_get_debug_tooltip(const String&p_text,Node *_se) { -// ScriptEditorBase *se=_se->cast_to<ScriptEditorBase>(); + //ScriptEditorBase *se=_se->cast_to<ScriptEditorBase>(); String val = debugger->get_var_value(p_text); if (val!=String()) { @@ -311,7 +312,7 @@ void ScriptEditor::_breaked(bool p_breaked,bool p_can_debug) { void ScriptEditor::_show_debugger(bool p_show) { -// debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), p_show); + //debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), p_show); } void ScriptEditor::_script_created(Ref<Script> p_script) { @@ -426,14 +427,14 @@ void ScriptEditor::_go_to_tab(int p_idx) { script_name_label->set_text(c->cast_to<ScriptEditorBase>()->get_name()); script_icon->set_texture(c->cast_to<ScriptEditorBase>()->get_icon()); - if (is_visible()) + if (is_visible_in_tree()) c->cast_to<ScriptEditorBase>()->ensure_focus(); } if (c->cast_to<EditorHelp>()) { - script_name_label->set_text(c->cast_to<EditorHelp>()->get_class_name()); + script_name_label->set_text(c->cast_to<EditorHelp>()->get_class()); script_icon->set_texture(get_icon("Help","EditorIcons")); - if (is_visible()) + if (is_visible_in_tree()) c->cast_to<EditorHelp>()->set_focused(); } @@ -445,7 +446,7 @@ void ScriptEditor::_go_to_tab(int p_idx) { _update_selected_editor_menu(); } -void ScriptEditor::_close_tab(int p_idx) { +void ScriptEditor::_close_tab(int p_idx, bool p_save) { int selected = p_idx; if (selected<0 || selected>=tab_container->get_child_count()) @@ -454,7 +455,9 @@ void ScriptEditor::_close_tab(int p_idx) { Node *tselected = tab_container->get_child(selected); ScriptEditorBase *current = tab_container->get_child(selected)->cast_to<ScriptEditorBase>(); if (current) { - apply_scripts(); + if (p_save) { + apply_scripts(); + } if (current->get_edit_menu()) { memdelete(current->get_edit_menu()); } @@ -504,6 +507,11 @@ void ScriptEditor::_close_current_tab() { } +void ScriptEditor::_close_discard_current_tab(const String& p_str) { + _close_tab(tab_container->get_current_tab(), false); + erase_tab_confirm->hide(); +} + void ScriptEditor::_close_docs_tab() { int child_count = tab_container->get_child_count(); @@ -605,7 +613,7 @@ void ScriptEditor::_reload_scripts(){ } - Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_type(),true); + Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_class(),true); ERR_CONTINUE(!rel_script.is_valid()); script->set_source_code( rel_script->get_source_code() ); script->set_last_modified_time( rel_script->get_last_modified_time() ); @@ -672,7 +680,7 @@ bool ScriptEditor::_test_script_times_on_disk(Ref<Script> p_for_script) { bool need_ask=false; bool need_reload=false; - bool use_autoreload=bool(EDITOR_DEF("text_editor/auto_reload_scripts_on_external_change",false)); + bool use_autoreload=bool(EDITOR_DEF("text_editor/files/auto_reload_scripts_on_external_change",false)); @@ -783,7 +791,7 @@ void ScriptEditor::_menu_option(int p_option) { file_dialog_option = FILE_SAVE_THEME_AS; file_dialog->clear_filters(); file_dialog->add_filter("*.tet"); - file_dialog->set_current_path(EditorSettings::get_singleton()->get_settings_path() + "/text_editor_themes/" + EditorSettings::get_singleton()->get("text_editor/color_theme")); + file_dialog->set_current_path(EditorSettings::get_singleton()->get_settings_path() + "/text_editor_themes/" + EditorSettings::get_singleton()->get("text_editor/theme/color_theme")); file_dialog->popup_centered_ratio(); file_dialog->set_title(TTR("Save Theme As..")); } break; @@ -798,7 +806,7 @@ void ScriptEditor::_menu_option(int p_option) { if (tab_container->get_tab_count()>0) { EditorHelp *eh = tab_container->get_child( tab_container->get_current_tab() )->cast_to<EditorHelp>(); if (eh) { - current=eh->get_class_name(); + current=eh->get_class(); } } @@ -991,7 +999,7 @@ void ScriptEditor::_notification(int p_what) { script_split->connect("dragged",this,"_script_split_dragged"); autosave_timer->connect("timeout",this,"_autosave_scripts"); { - float autosave_time = EditorSettings::get_singleton()->get("text_editor/autosave_interval_secs"); + float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs"); if (autosave_time>0) { autosave_timer->set_wait_time(autosave_time); autosave_timer->start(); @@ -1104,7 +1112,7 @@ static const Node * _find_node_with_script(const Node* p_node, const RefPtr & p_ Dictionary ScriptEditor::get_state() const { -// apply_scripts(); + //apply_scripts(); Dictionary state; #if 0 @@ -1281,7 +1289,7 @@ void ScriptEditor::ensure_select_current() { Ref<Script> script = se->get_edited_script(); - if (!grab_focus_block && is_visible()) + if (!grab_focus_block && is_visible_in_tree()) se->ensure_focus(); @@ -1343,12 +1351,12 @@ struct _ScriptEditorItemData { void ScriptEditor::_update_script_colors() { - bool script_temperature_enabled = EditorSettings::get_singleton()->get("text_editor/script_temperature_enabled"); - bool highlight_current = EditorSettings::get_singleton()->get("text_editor/highlight_current_script"); + bool script_temperature_enabled = EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_enabled"); + bool highlight_current = EditorSettings::get_singleton()->get("text_editor/open_scripts/highlight_current_script"); - int hist_size = EditorSettings::get_singleton()->get("text_editor/script_temperature_history_size"); - Color hot_color=EditorSettings::get_singleton()->get("text_editor/script_temperature_hot_color"); - Color cold_color=EditorSettings::get_singleton()->get("text_editor/script_temperature_cold_color"); + int hist_size = EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_history_size"); + Color hot_color=EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_hot_color"); + Color cold_color=EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_cold_color"); for(int i=0;i<script_list->get_item_count();i++) { @@ -1361,7 +1369,7 @@ void ScriptEditor::_update_script_colors() { bool current = tab_container->get_current_tab() == c; if (current && highlight_current) { - script_list->set_item_custom_bg_color(i, EditorSettings::get_singleton()->get("text_editor/current_script_background_color")); + script_list->set_item_custom_bg_color(i, EditorSettings::get_singleton()->get("text_editor/open_scripts/current_script_background_color")); } else if (script_temperature_enabled) { @@ -1395,7 +1403,7 @@ void ScriptEditor::_update_script_names() { } script_list->clear(); - bool split_script_help = EditorSettings::get_singleton()->get("text_editor/group_help_pages"); + bool split_script_help = EditorSettings::get_singleton()->get("text_editor/open_scripts/group_help_pages"); Vector<_ScriptEditorItemData> sedata; @@ -1423,7 +1431,7 @@ void ScriptEditor::_update_script_names() { EditorHelp *eh = tab_container->get_child(i)->cast_to<EditorHelp>(); if (eh) { - String name = eh->get_class_name(); + String name = eh->get_class(); Ref<Texture> icon = get_icon("Help","EditorIcons"); String tooltip = name+" Class Reference"; @@ -1481,12 +1489,12 @@ void ScriptEditor::edit(const Ref<Script>& p_script, bool p_grab_focus) { // see if already has it - bool open_dominant = EditorSettings::get_singleton()->get("text_editor/open_dominant_script_on_scene_change"); + bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change"); - if (p_script->get_path().is_resource_file() && bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor"))) { + if (p_script->get_path().is_resource_file() && bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))) { - String path = EditorSettings::get_singleton()->get("external_editor/exec_path"); - String flags = EditorSettings::get_singleton()->get("external_editor/exec_flags"); + String path = EditorSettings::get_singleton()->get("text_editor/external/exec_path"); + String flags = EditorSettings::get_singleton()->get("text_editor/external/exec_flags"); List<String> args; flags=flags.strip_edges(); if (flags!=String()) { @@ -1495,7 +1503,7 @@ void ScriptEditor::edit(const Ref<Script>& p_script, bool p_grab_focus) { args.push_back(flagss[i]); } - args.push_back(Globals::get_singleton()->globalize_path(p_script->get_path())); + args.push_back(GlobalConfig::get_singleton()->globalize_path(p_script->get_path())); Error err = OS::get_singleton()->execute(path,args,false); if (err==OK) return; @@ -1516,7 +1524,7 @@ void ScriptEditor::edit(const Ref<Script>& p_script, bool p_grab_focus) { _go_to_tab(i); script_list->select( script_list->find_metadata(i) ); } - if (is_visible()) + if (is_visible_in_tree()) se->ensure_focus(); } return; @@ -1654,7 +1662,7 @@ void ScriptEditor::_editor_stop() { } -void ScriptEditor::_add_callback(Object *p_obj, const String& p_function, const StringArray& p_args) { +void ScriptEditor::_add_callback(Object *p_obj, const String& p_function, const PoolStringArray& p_args) { //print_line("add callback! hohoho"); kinda sad to remove this ERR_FAIL_COND(!p_obj); @@ -1694,8 +1702,8 @@ void ScriptEditor::_save_layout() { void ScriptEditor::_editor_settings_changed() { - trim_trailing_whitespace_on_save = EditorSettings::get_singleton()->get("text_editor/trim_trailing_whitespace_on_save"); - float autosave_time = EditorSettings::get_singleton()->get("text_editor/autosave_interval_secs"); + trim_trailing_whitespace_on_save = EditorSettings::get_singleton()->get("text_editor/files/trim_trailing_whitespace_on_save"); + float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs"); if (autosave_time>0) { autosave_timer->set_wait_time(autosave_time); autosave_timer->start(); @@ -1704,9 +1712,9 @@ void ScriptEditor::_editor_settings_changed() { } if (current_theme == "") { - current_theme = EditorSettings::get_singleton()->get("text_editor/color_theme"); - } else if (current_theme != EditorSettings::get_singleton()->get("text_editor/color_theme")) { - current_theme = EditorSettings::get_singleton()->get("text_editor/color_theme"); + current_theme = EditorSettings::get_singleton()->get("text_editor/theme/color_theme"); + } else if (current_theme != EditorSettings::get_singleton()->get("text_editor/theme/color_theme")) { + current_theme = EditorSettings::get_singleton()->get("text_editor/theme/color_theme"); EditorSettings::get_singleton()->load_text_editor_theme(); } @@ -1720,7 +1728,7 @@ void ScriptEditor::_editor_settings_changed() { } _update_script_colors(); - ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/auto_reload_and_parse_scripts_on_save",true)); + ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/files/auto_reload_and_parse_scripts_on_save",true)); } @@ -1744,7 +1752,7 @@ void ScriptEditor::_script_split_dragged(float) { } void ScriptEditor::_unhandled_input(const InputEvent& p_event) { - if (p_event.key.pressed || !is_visible()) return; + if (p_event.key.pressed || !is_visible_in_tree()) return; if (ED_IS_SHORTCUT("script_editor/next_script", p_event)) { int next_tab = script_list->get_current() + 1; next_tab %= script_list->get_item_count(); @@ -1761,7 +1769,7 @@ void ScriptEditor::_unhandled_input(const InputEvent& p_event) { void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) { - if (!bool(EDITOR_DEF("text_editor/restore_scripts_on_load",true))) { + if (!bool(EDITOR_DEF("text_editor/files/restore_scripts_on_load",true))) { return; } @@ -1827,7 +1835,7 @@ void ScriptEditor::get_window_layout(Ref<ConfigFile> p_layout) { if (eh) { - helps.push_back(eh->get_class_name()); + helps.push_back(eh->get_class()); } @@ -1841,12 +1849,14 @@ void ScriptEditor::get_window_layout(Ref<ConfigFile> p_layout) { void ScriptEditor::_help_class_open(const String& p_class) { + if (p_class=="") + return; for(int i=0;i<tab_container->get_child_count();i++) { EditorHelp *eh = tab_container->get_child(i)->cast_to<EditorHelp>(); - if (eh && eh->get_class_name()==p_class) { + if (eh && eh->get_class()==p_class) { _go_to_tab(i); _update_script_names(); @@ -1874,7 +1884,7 @@ void ScriptEditor::_help_class_goto(const String& p_desc) { EditorHelp *eh = tab_container->get_child(i)->cast_to<EditorHelp>(); - if (eh && eh->get_class_name()==cname) { + if (eh && eh->get_class()==cname) { _go_to_tab(i); eh->go_to_help(p_desc); @@ -1972,9 +1982,9 @@ void ScriptEditor::_history_back(){ } void ScriptEditor::set_scene_root_script( Ref<Script> p_script ) { - bool open_dominant = EditorSettings::get_singleton()->get("text_editor/open_dominant_script_on_scene_change"); + bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change"); - if (bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor"))) + if (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))) return; if (open_dominant && p_script.is_valid() && _can_open_in_editor(p_script.ptr())) { @@ -2027,43 +2037,44 @@ void ScriptEditor::register_create_script_editor_function(CreateScriptEditorFunc void ScriptEditor::_bind_methods() { - ObjectTypeDB::bind_method("_file_dialog_action",&ScriptEditor::_file_dialog_action); - ObjectTypeDB::bind_method("_tab_changed",&ScriptEditor::_tab_changed); - ObjectTypeDB::bind_method("_menu_option",&ScriptEditor::_menu_option); - ObjectTypeDB::bind_method("_close_current_tab",&ScriptEditor::_close_current_tab); - ObjectTypeDB::bind_method("_close_docs_tab", &ScriptEditor::_close_docs_tab); - ObjectTypeDB::bind_method("_close_all_tabs", &ScriptEditor::_close_all_tabs); - ObjectTypeDB::bind_method("_editor_play",&ScriptEditor::_editor_play); - ObjectTypeDB::bind_method("_editor_pause",&ScriptEditor::_editor_pause); - ObjectTypeDB::bind_method("_editor_stop",&ScriptEditor::_editor_stop); - ObjectTypeDB::bind_method("_add_callback",&ScriptEditor::_add_callback); - ObjectTypeDB::bind_method("_reload_scripts",&ScriptEditor::_reload_scripts); - ObjectTypeDB::bind_method("_resave_scripts",&ScriptEditor::_resave_scripts); - ObjectTypeDB::bind_method("_res_saved_callback",&ScriptEditor::_res_saved_callback); - ObjectTypeDB::bind_method("_goto_script_line",&ScriptEditor::_goto_script_line); - ObjectTypeDB::bind_method("_goto_script_line2",&ScriptEditor::_goto_script_line2); - ObjectTypeDB::bind_method("_help_search",&ScriptEditor::_help_search); - ObjectTypeDB::bind_method("_save_history",&ScriptEditor::_save_history); - - - - ObjectTypeDB::bind_method("_breaked",&ScriptEditor::_breaked); - ObjectTypeDB::bind_method("_show_debugger",&ScriptEditor::_show_debugger); - ObjectTypeDB::bind_method("_get_debug_tooltip",&ScriptEditor::_get_debug_tooltip); - ObjectTypeDB::bind_method("_autosave_scripts",&ScriptEditor::_autosave_scripts); - ObjectTypeDB::bind_method("_editor_settings_changed",&ScriptEditor::_editor_settings_changed); - ObjectTypeDB::bind_method("_update_script_names",&ScriptEditor::_update_script_names); - ObjectTypeDB::bind_method("_tree_changed",&ScriptEditor::_tree_changed); - ObjectTypeDB::bind_method("_script_selected",&ScriptEditor::_script_selected); - ObjectTypeDB::bind_method("_script_created",&ScriptEditor::_script_created); - ObjectTypeDB::bind_method("_script_split_dragged",&ScriptEditor::_script_split_dragged); - ObjectTypeDB::bind_method("_help_class_open",&ScriptEditor::_help_class_open); - ObjectTypeDB::bind_method("_help_class_goto",&ScriptEditor::_help_class_goto); - ObjectTypeDB::bind_method("_request_help",&ScriptEditor::_help_class_open); - ObjectTypeDB::bind_method("_history_forward",&ScriptEditor::_history_forward); - ObjectTypeDB::bind_method("_history_back",&ScriptEditor::_history_back); - ObjectTypeDB::bind_method("_live_auto_reload_running_scripts",&ScriptEditor::_live_auto_reload_running_scripts); - ObjectTypeDB::bind_method("_unhandled_input",&ScriptEditor::_unhandled_input); + ClassDB::bind_method("_file_dialog_action",&ScriptEditor::_file_dialog_action); + ClassDB::bind_method("_tab_changed",&ScriptEditor::_tab_changed); + ClassDB::bind_method("_menu_option",&ScriptEditor::_menu_option); + ClassDB::bind_method("_close_current_tab",&ScriptEditor::_close_current_tab); + ClassDB::bind_method("_close_discard_current_tab", &ScriptEditor::_close_discard_current_tab); + ClassDB::bind_method("_close_docs_tab", &ScriptEditor::_close_docs_tab); + ClassDB::bind_method("_close_all_tabs", &ScriptEditor::_close_all_tabs); + ClassDB::bind_method("_editor_play",&ScriptEditor::_editor_play); + ClassDB::bind_method("_editor_pause",&ScriptEditor::_editor_pause); + ClassDB::bind_method("_editor_stop",&ScriptEditor::_editor_stop); + ClassDB::bind_method("_add_callback",&ScriptEditor::_add_callback); + ClassDB::bind_method("_reload_scripts",&ScriptEditor::_reload_scripts); + ClassDB::bind_method("_resave_scripts",&ScriptEditor::_resave_scripts); + ClassDB::bind_method("_res_saved_callback",&ScriptEditor::_res_saved_callback); + ClassDB::bind_method("_goto_script_line",&ScriptEditor::_goto_script_line); + ClassDB::bind_method("_goto_script_line2",&ScriptEditor::_goto_script_line2); + ClassDB::bind_method("_help_search",&ScriptEditor::_help_search); + ClassDB::bind_method("_save_history",&ScriptEditor::_save_history); + + + + ClassDB::bind_method("_breaked",&ScriptEditor::_breaked); + ClassDB::bind_method("_show_debugger",&ScriptEditor::_show_debugger); + ClassDB::bind_method("_get_debug_tooltip",&ScriptEditor::_get_debug_tooltip); + ClassDB::bind_method("_autosave_scripts",&ScriptEditor::_autosave_scripts); + ClassDB::bind_method("_editor_settings_changed",&ScriptEditor::_editor_settings_changed); + ClassDB::bind_method("_update_script_names",&ScriptEditor::_update_script_names); + ClassDB::bind_method("_tree_changed",&ScriptEditor::_tree_changed); + ClassDB::bind_method("_script_selected",&ScriptEditor::_script_selected); + ClassDB::bind_method("_script_created",&ScriptEditor::_script_created); + ClassDB::bind_method("_script_split_dragged",&ScriptEditor::_script_split_dragged); + ClassDB::bind_method("_help_class_open",&ScriptEditor::_help_class_open); + ClassDB::bind_method("_help_class_goto",&ScriptEditor::_help_class_goto); + ClassDB::bind_method("_request_help",&ScriptEditor::_help_class_open); + ClassDB::bind_method("_history_forward",&ScriptEditor::_history_forward); + ClassDB::bind_method("_history_back",&ScriptEditor::_history_back); + ClassDB::bind_method("_live_auto_reload_running_scripts",&ScriptEditor::_live_auto_reload_running_scripts); + ClassDB::bind_method("_unhandled_input",&ScriptEditor::_unhandled_input); } @@ -2126,7 +2137,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/close_docs", TTR("Close Docs")), CLOSE_DOCS); file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/close_file", TTR("Close"), KEY_MASK_CMD | KEY_W), FILE_CLOSE); file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/close_all", TTR("Close All")), CLOSE_ALL); - file_menu->get_popup()->connect("item_pressed", this,"_menu_option"); + file_menu->get_popup()->connect("id_pressed", this,"_menu_option"); @@ -2135,7 +2146,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { script_search_menu->set_text(TTR("Search")); script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find.."), KEY_MASK_CMD|KEY_F), HELP_SEARCH_FIND); script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_next", TTR("Find Next"), KEY_F3), HELP_SEARCH_FIND_NEXT); - script_search_menu->get_popup()->connect("item_pressed", this,"_menu_option"); + script_search_menu->get_popup()->connect("id_pressed", this,"_menu_option"); script_search_menu->hide(); @@ -2151,7 +2162,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { debug_menu->get_popup()->add_separator(); //debug_menu->get_popup()->add_check_item("Show Debugger",DEBUG_SHOW); debug_menu->get_popup()->add_check_shortcut(ED_SHORTCUT("debugger/keep_debugger_open", TTR("Keep Debugger Open")), DEBUG_SHOW_KEEP_OPEN); - debug_menu->get_popup()->connect("item_pressed", this,"_menu_option"); + debug_menu->get_popup()->connect("id_pressed", this,"_menu_option"); debug_menu->get_popup()->set_item_disabled( debug_menu->get_popup()->get_item_index(DEBUG_NEXT), true); debug_menu->get_popup()->set_item_disabled( debug_menu->get_popup()->get_item_index(DEBUG_STEP), true ); @@ -2168,7 +2179,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { window_menu->get_popup()->add_item(TTR("Move Left"),WINDOW_MOVE_LEFT,KEY_MASK_CMD|KEY_LEFT); window_menu->get_popup()->add_item(TTR("Move Right"),WINDOW_MOVE_RIGHT,KEY_MASK_CMD|KEY_RIGHT); window_menu->get_popup()->add_separator(); - window_menu->get_popup()->connect("item_pressed", this,"_menu_option"); + window_menu->get_popup()->connect("id_pressed", this,"_menu_option"); #endif @@ -2176,7 +2187,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { menu_hb->add_spacer(); - script_icon = memnew( TextureFrame ); + script_icon = memnew( TextureRect ); menu_hb->add_child(script_icon); script_name_label = memnew( Label ); menu_hb->add_child(script_name_label); @@ -2223,8 +2234,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { tab_container->connect("tab_changed", this,"_tab_changed"); erase_tab_confirm = memnew( ConfirmationDialog ); - add_child(erase_tab_confirm); + erase_tab_confirm->get_ok()->set_text(TTR("Save")); + erase_tab_confirm->add_button(TTR("Discard"), OS::get_singleton()->get_swap_ok_cancel(), "discard"); erase_tab_confirm->connect("confirmed", this,"_close_current_tab"); + erase_tab_confirm->connect("custom_action", this, "_close_discard_current_tab"); + add_child(erase_tab_confirm); script_create_dialog = memnew(ScriptCreateDialog); script_create_dialog->set_title(TTR("Create Script")); @@ -2245,7 +2259,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { { VBoxContainer *vbc = memnew( VBoxContainer ); disk_changed->add_child(vbc); - disk_changed->set_child_rect(vbc); + //disk_changed->set_child_rect(vbc); Label *dl = memnew( Label ); dl->set_text(TTR("The following files are newer on disk.\nWhat action should be taken?:")); @@ -2291,7 +2305,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { help_index->connect("open_class",this,"_help_class_open"); history_pos=-1; -// debugger_gui->hide(); + //debugger_gui->hide(); edit_pass=0; trim_trailing_whitespace_on_save = false; @@ -2326,7 +2340,7 @@ bool ScriptEditorPlugin::handles(Object *p_object) const { return valid; } - return p_object->is_type("Script"); + return p_object->is_class("Script"); } void ScriptEditorPlugin::make_visible(bool p_visible) { @@ -2414,20 +2428,20 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) { script_editor->hide(); - EDITOR_DEF("text_editor/auto_reload_scripts_on_external_change",true); - ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/auto_reload_and_parse_scripts_on_save",true)); - EDITOR_DEF("text_editor/open_dominant_script_on_scene_change",true); - EDITOR_DEF("external_editor/use_external_editor",false); - EDITOR_DEF("external_editor/exec_path",""); - EDITOR_DEF("text_editor/script_temperature_enabled",true); - EDITOR_DEF("text_editor/highlight_current_script", true); - EDITOR_DEF("text_editor/script_temperature_history_size",15); - EDITOR_DEF("text_editor/script_temperature_hot_color",Color(1,0,0,0.3)); - EDITOR_DEF("text_editor/script_temperature_cold_color",Color(0,0,1,0.3)); - EDITOR_DEF("text_editor/current_script_background_color",Color(0.81,0.81,0.14,0.63)); - EDITOR_DEF("text_editor/group_help_pages",true); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"external_editor/exec_path",PROPERTY_HINT_GLOBAL_FILE)); - EDITOR_DEF("external_editor/exec_flags",""); + EDITOR_DEF("text_editor/files/auto_reload_scripts_on_external_change",true); + ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/files/auto_reload_and_parse_scripts_on_save",true)); + EDITOR_DEF("text_editor/files/open_dominant_script_on_scene_change",true); + EDITOR_DEF("text_editor/external/use_external_editor",false); + EDITOR_DEF("text_editor/external/exec_path",""); + EDITOR_DEF("text_editor/open_scripts/script_temperature_enabled",true); + EDITOR_DEF("text_editor/open_scripts/highlight_current_script", true); + EDITOR_DEF("text_editor/open_scripts/script_temperature_history_size",15); + EDITOR_DEF("text_editor/open_scripts/script_temperature_hot_color",Color(1,0,0,0.3)); + EDITOR_DEF("text_editor/open_scripts/script_temperature_cold_color",Color(0,0,1,0.3)); + EDITOR_DEF("text_editor/open_scripts/current_script_background_color",Color(0.81,0.81,0.14,0.63)); + EDITOR_DEF("text_editor/open_scripts/group_help_pages",true); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"text_editor/external/exec_path",PROPERTY_HINT_GLOBAL_FILE)); + EDITOR_DEF("text_editor/external/exec_flags",""); } diff --git a/tools/editor/plugins/script_editor_plugin.h b/tools/editor/plugins/script_editor_plugin.h index 10f3bce14e..887c2f7d68 100644 --- a/tools/editor/plugins/script_editor_plugin.h +++ b/tools/editor/plugins/script_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -45,7 +45,7 @@ class ScriptEditorQuickOpen : public ConfirmationDialog { - OBJ_TYPE(ScriptEditorQuickOpen,ConfirmationDialog ) + GDCLASS(ScriptEditorQuickOpen,ConfirmationDialog ) LineEdit *search_box; Tree *search_options; @@ -77,7 +77,7 @@ class ScriptEditorDebugger; class ScriptEditorBase : public Control { - OBJ_TYPE( ScriptEditorBase, Control ); + GDCLASS( ScriptEditorBase, Control ); protected: static void _bind_methods(); public: @@ -99,7 +99,7 @@ public: virtual void reload(bool p_soft)=0; virtual void get_breakpoints(List<int> *p_breakpoints)=0; virtual bool goto_method(const String& p_method)=0; - virtual void add_callback(const String& p_function,StringArray p_args)=0; + virtual void add_callback(const String& p_function,PoolStringArray p_args)=0; virtual void update_settings()=0; virtual void set_debugger_active(bool p_active)=0; virtual bool can_lose_focus_on_node_selection() { return true; } @@ -118,7 +118,7 @@ class EditorScriptCodeCompletionCache; class ScriptEditor : public VBoxContainer { - OBJ_TYPE(ScriptEditor, VBoxContainer ); + GDCLASS(ScriptEditor, VBoxContainer ); EditorNode *editor; @@ -179,7 +179,7 @@ class ScriptEditor : public VBoxContainer { String current_theme; - TextureFrame *script_icon; + TextureRect *script_icon; Label *script_name_label; ToolButton *script_back; @@ -219,9 +219,10 @@ class ScriptEditor : public VBoxContainer { bool _test_script_times_on_disk(Ref<Script> p_for_script=Ref<Script>()); - void _close_tab(int p_idx); + void _close_tab(int p_idx, bool p_save=true); void _close_current_tab(); + void _close_discard_current_tab(const String& p_str); void _close_docs_tab(); void _close_all_tabs(); @@ -243,7 +244,7 @@ class ScriptEditor : public VBoxContainer { int edit_pass; - void _add_callback(Object *p_obj, const String& p_function, const StringArray& p_args); + void _add_callback(Object *p_obj, const String& p_function, const PoolStringArray& p_args); void _res_saved_callback(const Ref<Resource>& p_res); bool trim_trailing_whitespace_on_save; @@ -343,7 +344,7 @@ public: class ScriptEditorPlugin : public EditorPlugin { - OBJ_TYPE( ScriptEditorPlugin, EditorPlugin ); + GDCLASS( ScriptEditorPlugin, EditorPlugin ); ScriptEditor *script_editor; EditorNode *editor; diff --git a/tools/editor/plugins/script_text_editor.cpp b/tools/editor/plugins/script_text_editor.cpp index 40fc3a7bda..e26a3b23bc 100644 --- a/tools/editor/plugins/script_text_editor.cpp +++ b/tools/editor/plugins/script_text_editor.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "script_text_editor.h" + #include "tools/editor/editor_settings.h" #include "os/keyboard.h" #include "tools/editor/script_editor_debugger.h" @@ -60,7 +61,7 @@ void ScriptTextEditor::apply_code() { if (script.is_null()) return; -// print_line("applying code"); + //print_line("applying code"); script->set_source_code(code_editor->get_text_edit()->get_text()); script->update_exports(); } @@ -100,31 +101,32 @@ void ScriptTextEditor::_load_theme_settings() { /* keyword color */ - text_edit->set_custom_bg_color(EDITOR_DEF("text_editor/background_color",Color(0,0,0,0))); - text_edit->add_color_override("completion_background_color", EDITOR_DEF("text_editor/completion_background_color", Color(0,0,0,0))); - text_edit->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/completion_selected_color", Color::html("434244"))); - text_edit->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/completion_existing_color", Color::html("21dfdfdf"))); - text_edit->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/completion_scroll_color", Color::html("ffffff"))); - text_edit->add_color_override("completion_font_color", EDITOR_DEF("text_editor/completion_font_color", Color::html("aaaaaa"))); - text_edit->add_color_override("font_color",EDITOR_DEF("text_editor/text_color",Color(0,0,0))); - text_edit->add_color_override("line_number_color",EDITOR_DEF("text_editor/line_number_color",Color(0,0,0))); - text_edit->add_color_override("caret_color",EDITOR_DEF("text_editor/caret_color",Color(0,0,0))); - text_edit->add_color_override("caret_background_color",EDITOR_DEF("text_editor/caret_background_color",Color(0,0,0))); - text_edit->add_color_override("font_selected_color",EDITOR_DEF("text_editor/text_selected_color",Color(1,1,1))); - text_edit->add_color_override("selection_color",EDITOR_DEF("text_editor/selection_color",Color(0.2,0.2,1))); - text_edit->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/brace_mismatch_color",Color(1,0.2,0.2))); - text_edit->add_color_override("current_line_color",EDITOR_DEF("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15))); - text_edit->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15))); - text_edit->add_color_override("number_color",EDITOR_DEF("text_editor/number_color",Color(0.9,0.6,0.0,2))); - text_edit->add_color_override("function_color",EDITOR_DEF("text_editor/function_color",Color(0.4,0.6,0.8))); - text_edit->add_color_override("member_variable_color",EDITOR_DEF("text_editor/member_variable_color",Color(0.9,0.3,0.3))); - text_edit->add_color_override("mark_color", EDITOR_DEF("text_editor/mark_color", Color(1.0,0.4,0.4,0.4))); - text_edit->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2))); - text_edit->add_color_override("search_result_color",EDITOR_DEF("text_editor/search_result_color",Color(0.05,0.25,0.05,1))); - 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))); - 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)); + text_edit->add_color_override("background_color", EDITOR_DEF("text_editor/highlighting/background_color",Color(0,0,0,0))); + text_edit->add_color_override("completion_background_color", EDITOR_DEF("text_editor/highlighting/completion_background_color", Color(0,0,0,0))); + text_edit->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/highlighting/completion_selected_color", Color::html("434244"))); + text_edit->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/highlighting/completion_existing_color", Color::html("21dfdfdf"))); + text_edit->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/highlighting/completion_scroll_color", Color::html("ffffff"))); + text_edit->add_color_override("completion_font_color", EDITOR_DEF("text_editor/highlighting/completion_font_color", Color::html("aaaaaa"))); + text_edit->add_color_override("font_color",EDITOR_DEF("text_editor/highlighting/text_color",Color(0,0,0))); + text_edit->add_color_override("line_number_color",EDITOR_DEF("text_editor/highlighting/line_number_color",Color(0,0,0))); + text_edit->add_color_override("caret_color",EDITOR_DEF("text_editor/highlighting/caret_color",Color(0,0,0))); + text_edit->add_color_override("caret_background_color",EDITOR_DEF("text_editor/highlighting/caret_background_color",Color(0,0,0))); + text_edit->add_color_override("font_selected_color",EDITOR_DEF("text_editor/highlighting/text_selected_color",Color(1,1,1))); + text_edit->add_color_override("selection_color",EDITOR_DEF("text_editor/highlighting/selection_color",Color(0.2,0.2,1))); + text_edit->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/highlighting/brace_mismatch_color",Color(1,0.2,0.2))); + text_edit->add_color_override("current_line_color",EDITOR_DEF("text_editor/highlighting/current_line_color",Color(0.3,0.5,0.8,0.15))); + text_edit->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/highlighting/word_highlighted_color",Color(0.8,0.9,0.9,0.15))); + text_edit->add_color_override("number_color",EDITOR_DEF("text_editor/highlighting/number_color",Color(0.9,0.6,0.0,2))); + text_edit->add_color_override("function_color",EDITOR_DEF("text_editor/highlighting/function_color",Color(0.4,0.6,0.8))); + text_edit->add_color_override("member_variable_color",EDITOR_DEF("text_editor/highlighting/member_variable_color",Color(0.9,0.3,0.3))); + text_edit->add_color_override("mark_color", EDITOR_DEF("text_editor/highlighting/mark_color", Color(1.0,0.4,0.4,0.4))); + text_edit->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/highlighting/breakpoint_color", Color(0.8,0.8,0.4,0.2))); + text_edit->add_color_override("search_result_color",EDITOR_DEF("text_editor/highlighting/search_result_color",Color(0.05,0.25,0.05,1))); + text_edit->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/highlighting/search_result_border_color",Color(0.1,0.45,0.1,1))); + text_edit->add_color_override("symbol_color",EDITOR_DEF("text_editor/highlighting/symbol_color",Color::hex(0x005291ff))); + text_edit->add_constant_override("line_spacing", EDITOR_DEF("text_editor/theme/line_spacing",4)); + + Color keyword_color= EDITOR_DEF("text_editor/highlighting/keyword_color",Color(0.5,0.0,0.2)); List<String> keywords; script->get_language()->get_reserved_words(&keywords); @@ -134,7 +136,7 @@ void ScriptTextEditor::_load_theme_settings() { } //colorize core types - Color basetype_color= EDITOR_DEF("text_editor/base_type_color",Color(0.3,0.3,0.0)); + Color basetype_color= EDITOR_DEF("text_editor/highlighting/base_type_color",Color(0.3,0.3,0.0)); text_edit->add_keyword_color("Vector2",basetype_color); text_edit->add_keyword_color("Vector3",basetype_color); @@ -150,10 +152,10 @@ void ScriptTextEditor::_load_theme_settings() { text_edit->add_keyword_color("NodePath",basetype_color); //colorize engine types - Color type_color= EDITOR_DEF("text_editor/engine_type_color",Color(0.0,0.2,0.4)); + Color type_color= EDITOR_DEF("text_editor/highlighting/engine_type_color",Color(0.0,0.2,0.4)); List<StringName> types; - ObjectTypeDB::get_type_list(&types); + ClassDB::get_class_list(&types); for(List<StringName>::Element *E=types.front();E;E=E->next()) { @@ -165,7 +167,7 @@ void ScriptTextEditor::_load_theme_settings() { } //colorize comments - Color comment_color = EDITOR_DEF("text_editor/comment_color",Color::hex(0x797e7eff)); + Color comment_color = EDITOR_DEF("text_editor/highlighting/comment_color",Color::hex(0x797e7eff)); List<String> comments; script->get_language()->get_comment_delimiters(&comments); @@ -179,7 +181,7 @@ void ScriptTextEditor::_load_theme_settings() { } //colorize strings - Color string_color = EDITOR_DEF("text_editor/string_color",Color::hex(0x6b6f00ff)); + Color string_color = EDITOR_DEF("text_editor/highlighting/string_color",Color::hex(0x6b6f00ff)); List<String> strings; script->get_language()->get_string_delimiters(&strings); @@ -190,11 +192,6 @@ void ScriptTextEditor::_load_theme_settings() { String end = string.get_slice_count(" ")>1?string.get_slice(" ",1):String(); text_edit->add_color_region(beg,end,string_color,end==""); } - - //colorize symbols - Color symbol_color= EDITOR_DEF("text_editor/symbol_color",Color::hex(0x005291ff)); - text_edit->set_symbol_color(symbol_color); - } @@ -229,7 +226,7 @@ void ScriptTextEditor::_notification(int p_what) { } } -void ScriptTextEditor::add_callback(const String& p_function,StringArray p_args) { +void ScriptTextEditor::add_callback(const String& p_function,PoolStringArray p_args) { String code = code_editor->get_text_edit()->get_text(); int pos = script->get_language()->find_function(p_function,code); @@ -336,7 +333,7 @@ String ScriptTextEditor::get_name() { } else if (script->get_name()!="") name=script->get_name(); else - name=script->get_type()+"("+itos(script->get_instance_ID())+")"; + name=script->get_class()+"("+itos(script->get_instance_ID())+")"; return name; @@ -344,8 +341,8 @@ String ScriptTextEditor::get_name() { Ref<Texture> ScriptTextEditor::get_icon() { - if (get_parent_control() && get_parent_control()->has_icon(script->get_type(),"EditorIcons")) { - return get_parent_control()->get_icon(script->get_type(),"EditorIcons"); + if (get_parent_control() && get_parent_control()->has_icon(script->get_class(),"EditorIcons")) { + return get_parent_control()->get_icon(script->get_class(),"EditorIcons"); } return Ref<Texture>(); @@ -442,7 +439,7 @@ static void _find_changed_scripts_for_external_editor(Node* p_base, Node*p_curre void ScriptEditor::_update_modified_scripts_for_external_editor(Ref<Script> p_for_script) { - if (!bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor"))) + if (!bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))) return; Set<Ref<Script> > scripts; @@ -469,7 +466,7 @@ void ScriptEditor::_update_modified_scripts_for_external_editor(Ref<Script> p_fo if (last_date!=date) { - Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_type(),true); + Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_class(),true); ERR_CONTINUE(!rel_script.is_valid()); script->set_source_code( rel_script->get_source_code() ); script->set_last_modified_time( rel_script->get_last_modified_time() ); @@ -488,7 +485,7 @@ void ScriptTextEditor::_code_complete_scripts(void* p_ud,const String& p_code, L void ScriptTextEditor::_code_complete_script(const String& p_code, List<String>* r_options) { - if (color_panel->is_visible()) return; + if (color_panel->is_visible_in_tree()) return; Node *base = get_tree()->get_edited_scene_root(); if (base) { base = _find_node_for_script(base,base,script); @@ -548,10 +545,10 @@ void ScriptTextEditor::_lookup_symbol(const String& p_symbol,int p_row, int p_co StringName cname = result.class_name; bool success; while(true) { - ObjectTypeDB::get_integer_constant(cname,result.class_member,&success); + ClassDB::get_integer_constant(cname,result.class_member,&success); if (success) { result.class_name=cname; - cname=ObjectTypeDB::type_inherits_from(cname); + cname=ClassDB::get_parent_class(cname); } else { break; } @@ -570,9 +567,9 @@ void ScriptTextEditor::_lookup_symbol(const String& p_symbol,int p_row, int p_co StringName cname = result.class_name; while(true) { - if (ObjectTypeDB::has_method(cname,result.class_member)) { + if (ClassDB::has_method(cname,result.class_member)) { result.class_name=cname; - cname=ObjectTypeDB::type_inherits_from(cname); + cname=ClassDB::get_parent_class(cname); } else { break; } @@ -977,19 +974,19 @@ void ScriptTextEditor::_edit_option(int p_op) { void ScriptTextEditor::_bind_methods() { - ObjectTypeDB::bind_method("_validate_script",&ScriptTextEditor::_validate_script); - ObjectTypeDB::bind_method("_load_theme_settings",&ScriptTextEditor::_load_theme_settings); - ObjectTypeDB::bind_method("_breakpoint_toggled",&ScriptTextEditor::_breakpoint_toggled); - ObjectTypeDB::bind_method("_edit_option",&ScriptTextEditor::_edit_option); - ObjectTypeDB::bind_method("_goto_line",&ScriptTextEditor::_goto_line); - ObjectTypeDB::bind_method("_lookup_symbol",&ScriptTextEditor::_lookup_symbol); - ObjectTypeDB::bind_method("_text_edit_input_event", &ScriptTextEditor::_text_edit_input_event); - ObjectTypeDB::bind_method("_color_changed", &ScriptTextEditor::_color_changed); + ClassDB::bind_method("_validate_script",&ScriptTextEditor::_validate_script); + ClassDB::bind_method("_load_theme_settings",&ScriptTextEditor::_load_theme_settings); + ClassDB::bind_method("_breakpoint_toggled",&ScriptTextEditor::_breakpoint_toggled); + ClassDB::bind_method("_edit_option",&ScriptTextEditor::_edit_option); + ClassDB::bind_method("_goto_line",&ScriptTextEditor::_goto_line); + ClassDB::bind_method("_lookup_symbol",&ScriptTextEditor::_lookup_symbol); + ClassDB::bind_method("_text_edit_gui_input", &ScriptTextEditor::_text_edit_gui_input); + ClassDB::bind_method("_color_changed", &ScriptTextEditor::_color_changed); - ObjectTypeDB::bind_method("get_drag_data_fw",&ScriptTextEditor::get_drag_data_fw); - ObjectTypeDB::bind_method("can_drop_data_fw",&ScriptTextEditor::can_drop_data_fw); - ObjectTypeDB::bind_method("drop_data_fw",&ScriptTextEditor::drop_data_fw); + ClassDB::bind_method("get_drag_data_fw",&ScriptTextEditor::get_drag_data_fw); + ClassDB::bind_method("can_drop_data_fw",&ScriptTextEditor::can_drop_data_fw); + ClassDB::bind_method("drop_data_fw",&ScriptTextEditor::drop_data_fw); } @@ -1163,7 +1160,7 @@ void ScriptTextEditor::drop_data_fw(const Point2& p_point,const Variant& p_data, } -void ScriptTextEditor::_text_edit_input_event(const InputEvent& ev) { +void ScriptTextEditor::_text_edit_gui_input(const InputEvent& ev) { if (ev.type == InputEvent::MOUSE_BUTTON) { InputEventMouseButton mb = ev.mouse_button; if (mb.button_index == BUTTON_RIGHT && !mb.pressed) { @@ -1198,7 +1195,7 @@ void ScriptTextEditor::_text_edit_input_event(const InputEvent& ev) { Vector<float> color = stripped.split_floats(","); if (color.size() > 2) { float alpha = color.size() > 3 ? color[3] : 1.0f; - color_picker->set_color(Color(color[0], color[1], color[2], alpha)); + color_picker->set_pick_color(Color(color[0], color[1], color[2], alpha)); } color_panel->set_pos(get_global_transform().xform(get_local_mouse_pos())); Size2 ms = Size2(300, color_picker->get_combined_minimum_size().height+10); @@ -1230,20 +1227,21 @@ void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color) { context_menu->clear(); if (p_selection) { - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut")); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy")); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY); } - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste")); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE); context_menu->add_separator(); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all")); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo")); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); if (p_selection) { context_menu->add_separator(); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left")); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right")); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment")); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right"), EDIT_INDENT_RIGHT); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment"), EDIT_TOGGLE_COMMENT); } if (p_color) { context_menu->add_separator(); @@ -1268,22 +1266,22 @@ ScriptTextEditor::ScriptTextEditor() { update_settings(); code_editor->get_text_edit()->set_callhint_settings( - EditorSettings::get_singleton()->get("text_editor/put_callhint_tooltip_below_current_line"), - EditorSettings::get_singleton()->get("text_editor/callhint_tooltip_offset")); + EditorSettings::get_singleton()->get("text_editor/completion/put_callhint_tooltip_below_current_line"), + EditorSettings::get_singleton()->get("text_editor/completion/callhint_tooltip_offset")); code_editor->get_text_edit()->set_select_identifiers_on_hover(true); code_editor->get_text_edit()->set_context_menu_enabled(false); - code_editor->get_text_edit()->connect("input_event", this, "_text_edit_input_event"); + code_editor->get_text_edit()->connect("gui_input", this, "_text_edit_gui_input"); context_menu = memnew(PopupMenu); add_child(context_menu); - context_menu->connect("item_pressed", this, "_edit_option"); + context_menu->connect("id_pressed", this, "_edit_option"); color_panel = memnew(PopupPanel); add_child(color_panel); color_picker = memnew(ColorPicker); color_panel->add_child(color_picker); - color_panel->set_child_rect(color_picker); + color_panel->set_child_rect(color_picker); //NOT color_picker->connect("color_changed", this, "_color_changed"); edit_hb = memnew (HBoxContainer); @@ -1313,7 +1311,7 @@ ScriptTextEditor::ScriptTextEditor() { #endif edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/trim_trailing_whitespace"), EDIT_TRIM_TRAILING_WHITESAPCE); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/auto_indent"), EDIT_AUTO_INDENT); - edit_menu->get_popup()->connect("item_pressed", this,"_edit_option"); + edit_menu->get_popup()->connect("id_pressed", this,"_edit_option"); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_breakpoint"), DEBUG_TOGGLE_BREAKPOINT); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/remove_all_breakpoints"), DEBUG_REMOVE_ALL_BREAKPOINTS); @@ -1333,7 +1331,7 @@ ScriptTextEditor::ScriptTextEditor() { search_menu->get_popup()->add_separator(); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/contextual_help"), HELP_CONTEXTUAL); - search_menu->get_popup()->connect("item_pressed", this,"_edit_option"); + search_menu->get_popup()->connect("id_pressed", this,"_edit_option"); edit_hb->add_child(edit_menu); @@ -1367,8 +1365,12 @@ void ScriptTextEditor::register_editor() { ED_SHORTCUT("script_text_editor/select_all", TTR("Select All"), KEY_MASK_CMD|KEY_A); ED_SHORTCUT("script_text_editor/move_up", TTR("Move Up"), KEY_MASK_ALT|KEY_UP); ED_SHORTCUT("script_text_editor/move_down", TTR("Move Down"), KEY_MASK_ALT|KEY_DOWN); - ED_SHORTCUT("script_text_editor/indent_left", TTR("Indent Left"), KEY_MASK_ALT|KEY_LEFT); - ED_SHORTCUT("script_text_editor/indent_right", TTR("Indent Right"), KEY_MASK_ALT|KEY_RIGHT); + + //leave these at zero, same can be accomplished with tab/shift-tab, including selection + //the next/previous in history shortcut in this case makes a lot more sene. + + ED_SHORTCUT("script_text_editor/indent_left", TTR("Indent Left"), 0); + ED_SHORTCUT("script_text_editor/indent_right", TTR("Indent Right"), 0); ED_SHORTCUT("script_text_editor/toggle_comment", TTR("Toggle Comment"), KEY_MASK_CMD|KEY_K); ED_SHORTCUT("script_text_editor/clone_down", TTR("Clone Down"), KEY_MASK_CMD|KEY_B); #ifdef OSX_ENABLED diff --git a/tools/editor/plugins/script_text_editor.h b/tools/editor/plugins/script_text_editor.h index ceef50f0bc..e30a78340e 100644 --- a/tools/editor/plugins/script_text_editor.h +++ b/tools/editor/plugins/script_text_editor.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,7 +35,7 @@ class ScriptTextEditor : public ScriptEditorBase { - OBJ_TYPE( ScriptTextEditor, ScriptEditorBase ); + GDCLASS( ScriptTextEditor, ScriptEditorBase ); CodeTextEditor *code_editor; @@ -105,7 +105,7 @@ protected: void _edit_option(int p_op); void _make_context_menu(bool p_selection, bool p_color); - void _text_edit_input_event(const InputEvent& ev); + void _text_edit_gui_input(const InputEvent& ev); void _color_changed(const Color& p_color); void _goto_line(int p_line) { goto_line(p_line); } @@ -137,7 +137,7 @@ public: virtual void reload(bool p_soft); virtual void get_breakpoints(List<int> *p_breakpoints); - virtual void add_callback(const String& p_function,StringArray p_args); + virtual void add_callback(const String& p_function,PoolStringArray p_args); virtual void update_settings(); virtual bool goto_method(const String& p_method); diff --git a/tools/editor/plugins/shader_editor_plugin.cpp b/tools/editor/plugins/shader_editor_plugin.cpp index 861f5678f6..56a8fccb9c 100644 --- a/tools/editor/plugins/shader_editor_plugin.cpp +++ b/tools/editor/plugins/shader_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,8 +27,8 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "shader_editor_plugin.h" -#include "tools/editor/editor_settings.h" +#include "tools/editor/editor_settings.h" #include "spatial_editor_plugin.h" #include "scene/resources/shader_graph.h" #include "io/resource_loader.h" @@ -37,7 +37,7 @@ #include "tools/editor/editor_node.h" #include "tools/editor/property_editor.h" #include "os/os.h" - +#include "servers/visual/shader_types.h" /*** SETTINGS EDITOR ****/ @@ -51,19 +51,14 @@ Ref<Shader> ShaderTextEditor::get_edited_shader() const { return shader; } -void ShaderTextEditor::set_edited_shader(const Ref<Shader>& p_shader,ShaderLanguage::ShaderType p_type) { +void ShaderTextEditor::set_edited_shader(const Ref<Shader>& p_shader) { shader=p_shader; - type=p_type; + _load_theme_settings(); - if (p_type==ShaderLanguage::SHADER_MATERIAL_LIGHT || p_type==ShaderLanguage::SHADER_CANVAS_ITEM_LIGHT) - get_text_edit()->set_text(shader->get_light_code()); - else if (p_type==ShaderLanguage::SHADER_MATERIAL_VERTEX || p_type==ShaderLanguage::SHADER_CANVAS_ITEM_VERTEX) - get_text_edit()->set_text(shader->get_vertex_code()); - else - get_text_edit()->set_text(shader->get_fragment_code()); + get_text_edit()->set_text(p_shader->get_code()); _line_col_changed(); @@ -77,34 +72,53 @@ void ShaderTextEditor::_load_theme_settings() { /* keyword color */ - get_text_edit()->set_custom_bg_color(EDITOR_DEF("text_editor/background_color",Color(0,0,0,0))); - get_text_edit()->add_color_override("completion_background_color", EDITOR_DEF("text_editor/completion_background_color", Color(0,0,0,0))); - get_text_edit()->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/completion_selected_color", Color::html("434244"))); - get_text_edit()->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/completion_existing_color", Color::html("21dfdfdf"))); - get_text_edit()->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/completion_scroll_color", Color::html("ffffff"))); - get_text_edit()->add_color_override("completion_font_color", EDITOR_DEF("text_editor/completion_font_color", Color::html("aaaaaa"))); - get_text_edit()->add_color_override("font_color",EDITOR_DEF("text_editor/text_color",Color(0,0,0))); - get_text_edit()->add_color_override("line_number_color",EDITOR_DEF("text_editor/line_number_color",Color(0,0,0))); - get_text_edit()->add_color_override("caret_color",EDITOR_DEF("text_editor/caret_color",Color(0,0,0))); - get_text_edit()->add_color_override("caret_background_color",EDITOR_DEF("text_editor/caret_background_color",Color(0,0,0))); - get_text_edit()->add_color_override("font_selected_color",EDITOR_DEF("text_editor/text_selected_color",Color(1,1,1))); - get_text_edit()->add_color_override("selection_color",EDITOR_DEF("text_editor/selection_color",Color(0.2,0.2,1))); - get_text_edit()->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/brace_mismatch_color",Color(1,0.2,0.2))); - get_text_edit()->add_color_override("current_line_color",EDITOR_DEF("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15))); - get_text_edit()->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15))); - get_text_edit()->add_color_override("number_color",EDITOR_DEF("text_editor/number_color",Color(0.9,0.6,0.0,2))); - get_text_edit()->add_color_override("function_color",EDITOR_DEF("text_editor/function_color",Color(0.4,0.6,0.8))); - get_text_edit()->add_color_override("member_variable_color",EDITOR_DEF("text_editor/member_variable_color",Color(0.9,0.3,0.3))); - get_text_edit()->add_color_override("mark_color", EDITOR_DEF("text_editor/mark_color", Color(1.0,0.4,0.4,0.4))); - 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))); - - Color keyword_color= EDITOR_DEF("text_editor/keyword_color",Color(0.5,0.0,0.2)); + get_text_edit()->add_color_override("background_color", EDITOR_DEF("text_editor/highlighting/background_color",Color(0,0,0,0))); + get_text_edit()->add_color_override("completion_background_color", EDITOR_DEF("text_editor/highlighting/completion_background_color", Color(0,0,0,0))); + get_text_edit()->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/highlighting/completion_selected_color", Color::html("434244"))); + get_text_edit()->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/highlighting/completion_existing_color", Color::html("21dfdfdf"))); + get_text_edit()->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/highlighting/completion_scroll_color", Color::html("ffffff"))); + get_text_edit()->add_color_override("completion_font_color", EDITOR_DEF("text_editor/highlighting/completion_font_color", Color::html("aaaaaa"))); + get_text_edit()->add_color_override("font_color",EDITOR_DEF("text_editor/highlighting/text_color",Color(0,0,0))); + get_text_edit()->add_color_override("line_number_color",EDITOR_DEF("text_editor/highlighting/line_number_color",Color(0,0,0))); + get_text_edit()->add_color_override("caret_color",EDITOR_DEF("text_editor/highlighting/caret_color",Color(0,0,0))); + get_text_edit()->add_color_override("caret_background_color",EDITOR_DEF("text_editor/highlighting/caret_background_color",Color(0,0,0))); + get_text_edit()->add_color_override("font_selected_color",EDITOR_DEF("text_editor/highlighting/text_selected_color",Color(1,1,1))); + get_text_edit()->add_color_override("selection_color",EDITOR_DEF("text_editor/highlighting/selection_color",Color(0.2,0.2,1))); + get_text_edit()->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/highlighting/brace_mismatch_color",Color(1,0.2,0.2))); + get_text_edit()->add_color_override("current_line_color",EDITOR_DEF("text_editor/highlighting/current_line_color",Color(0.3,0.5,0.8,0.15))); + get_text_edit()->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/highlighting/word_highlighted_color",Color(0.8,0.9,0.9,0.15))); + get_text_edit()->add_color_override("number_color",EDITOR_DEF("text_editor/highlighting/number_color",Color(0.9,0.6,0.0,2))); + get_text_edit()->add_color_override("function_color",EDITOR_DEF("text_editor/highlighting/function_color",Color(0.4,0.6,0.8))); + get_text_edit()->add_color_override("member_variable_color",EDITOR_DEF("text_editor/highlighting/member_variable_color",Color(0.9,0.3,0.3))); + get_text_edit()->add_color_override("mark_color", EDITOR_DEF("text_editor/highlighting/mark_color", Color(1.0,0.4,0.4,0.4))); + get_text_edit()->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/highlighting/breakpoint_color", Color(0.8,0.8,0.4,0.2))); + get_text_edit()->add_color_override("search_result_color",EDITOR_DEF("text_editor/highlighting/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/highlighting/search_result_border_color",Color(0.1,0.45,0.1,1))); + get_text_edit()->add_color_override("symbol_color",EDITOR_DEF("text_editor/highlighting/symbol_color",Color::hex(0x005291ff))); + + Color keyword_color= EDITOR_DEF("text_editor/highlighting/keyword_color",Color(0.5,0.0,0.2)); List<String> keywords; - ShaderLanguage::get_keyword_list(type,&keywords); + ShaderLanguage::get_keyword_list(&keywords); + + if (shader.is_valid()) { + + + for(const Map< StringName, Map<StringName,ShaderLanguage::DataType> >::Element *E=ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())).front();E;E=E->next()) { + + for (const Map<StringName,ShaderLanguage::DataType>::Element *F=E->get().front();F;F=F->next()) { + keywords.push_back(F->key()); + } + + } + + for(const Set<String>::Element *E =ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())).front();E;E=E->next()) { + + keywords.push_back(E->get()); + + } + } for(List<String>::Element *E=keywords.front();E;E=E->next()) { @@ -113,11 +127,11 @@ void ShaderTextEditor::_load_theme_settings() { } //colorize core types -// Color basetype_color= EDITOR_DEF("text_editor/base_type_color",Color(0.3,0.3,0.0)); + //Color basetype_color= EDITOR_DEF("text_editor/base_type_color",Color(0.3,0.3,0.0)); //colorize comments - Color comment_color = EDITOR_DEF("text_editor/comment_color",Color::hex(0x797e7eff)); + Color comment_color = EDITOR_DEF("text_editor/highlighting/comment_color",Color::hex(0x797e7eff)); get_text_edit()->add_color_region("/*","*/",comment_color,false); get_text_edit()->add_color_region("//","",comment_color,false); @@ -135,29 +149,36 @@ void ShaderTextEditor::_load_theme_settings() { String end = string.get_slice_count(" ")>1?string.get_slice(" ",1):String(); get_text_edit()->add_color_region(beg,end,string_color,end==""); }*/ +} - //colorize symbols - Color symbol_color= EDITOR_DEF("text_editor/symbol_color",Color::hex(0x005291ff)); - get_text_edit()->set_symbol_color(symbol_color); +void ShaderTextEditor::_code_complete_script(const String& p_code, List<String>* r_options) { -} + print_line("code complete"); + ShaderLanguage sl; + String calltip; -void ShaderTextEditor::_validate_script() { + Error err = sl.complete(p_code,ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())),ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())),r_options,calltip); - String errortxt; - int line,col; + if (calltip!="") { + get_text_edit()->set_code_hint(calltip); + } +} + +void ShaderTextEditor::_validate_script() { String code=get_text_edit()->get_text(); //List<StringName> params; //shader->get_param_list(¶ms); - Error err = ShaderLanguage::compile(code,type,NULL,NULL,&errortxt,&line,&col); + ShaderLanguage sl; + + Error err = sl.compile(code,ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())),ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode()))); if (err!=OK) { - String error_text="error("+itos(line+1)+","+itos(col+1)+"): "+errortxt; + String error_text="error("+itos(sl.get_error_line())+"): "+sl.get_error_text(); set_error(error_text); - get_text_edit()->set_line_as_marked(line,true); + get_text_edit()->set_line_as_marked(sl.get_error_line(),true); } else { for(int i=0;i<get_text_edit()->get_line_count();i++) @@ -187,9 +208,7 @@ ShaderTextEditor::ShaderTextEditor() { void ShaderEditor::_menu_option(int p_option) { - ShaderTextEditor *current = tab_container->get_current_tab_control()->cast_to<ShaderTextEditor>(); - if (!current) - return; + ShaderTextEditor *current = shader_editor; switch(p_option) { case EDIT_UNDO: { @@ -234,9 +253,9 @@ void ShaderEditor::_menu_option(int p_option) { current->get_find_replace_bar()->popup_replace(); } break; -// case SEARCH_LOCATE_SYMBOL: { + //case SEARCH_LOCATE_SYMBOL: { -// } break; + //} break; case SEARCH_GOTO_LINE: { goto_line_dialog->popup_find_line(current->get_text_edit()); @@ -245,24 +264,11 @@ void ShaderEditor::_menu_option(int p_option) { } } -void ShaderEditor::_tab_changed(int p_which) { - - ShaderTextEditor *shader_editor = tab_container->get_tab_control(p_which)->cast_to<ShaderTextEditor>(); - - if (shader_editor && is_inside_tree()) - shader_editor->get_text_edit()->grab_focus(); - - ensure_select_current(); -} void ShaderEditor::_notification(int p_what) { if (p_what==NOTIFICATION_ENTER_TREE) { - close->set_normal_texture( get_icon("Close","EditorIcons")); - close->set_hover_texture( get_icon("CloseHover","EditorIcons")); - close->set_pressed_texture( get_icon("Close","EditorIcons")); - close->connect("pressed",this,"_close_callback"); } if (p_what==NOTIFICATION_DRAW) { @@ -365,27 +371,32 @@ void ShaderEditor::clear() { void ShaderEditor::_params_changed() { - fragment_editor->_validate_script(); - vertex_editor->_validate_script(); - light_editor->_validate_script(); + shader_editor->_validate_script(); } void ShaderEditor::_editor_settings_changed() { - vertex_editor->update_editor_settings(); - fragment_editor->update_editor_settings(); - light_editor->update_editor_settings(); + shader_editor->get_text_edit()->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/completion/auto_brace_complete")); + shader_editor->get_text_edit()->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/cursor/scroll_past_end_of_file")); + shader_editor->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/indent/tab_size")); + shader_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/indent/draw_tabs")); + shader_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_line_numbers")); + shader_editor->get_text_edit()->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/highlighting/syntax_highlighting")); + shader_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlighting/highlight_all_occurrences")); + shader_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink")); + shader_editor->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed")); + shader_editor->get_text_edit()->add_constant_override("line_spacing", EditorSettings::get_singleton()->get("text_editor/theme/line_spacing")); + shader_editor->get_text_edit()->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/cursor/block_caret")); } void ShaderEditor::_bind_methods() { - ObjectTypeDB::bind_method("_editor_settings_changed",&ShaderEditor::_editor_settings_changed); - ObjectTypeDB::bind_method("_tab_changed",&ShaderEditor::_tab_changed); - ObjectTypeDB::bind_method("_menu_option",&ShaderEditor::_menu_option); - ObjectTypeDB::bind_method("_params_changed",&ShaderEditor::_params_changed); - ObjectTypeDB::bind_method("_close_callback",&ShaderEditor::_close_callback); - ObjectTypeDB::bind_method("apply_shaders",&ShaderEditor::apply_shaders); -// ObjectTypeDB::bind_method("_close_current_tab",&ShaderEditor::_close_current_tab); + ClassDB::bind_method("_editor_settings_changed",&ShaderEditor::_editor_settings_changed); + + ClassDB::bind_method("_menu_option",&ShaderEditor::_menu_option); + ClassDB::bind_method("_params_changed",&ShaderEditor::_params_changed); + ClassDB::bind_method("apply_shaders",&ShaderEditor::apply_shaders); + //ClassDB::bind_method("_close_current_tab",&ShaderEditor::_close_current_tab); } void ShaderEditor::ensure_select_current() { @@ -409,16 +420,7 @@ void ShaderEditor::edit(const Ref<Shader>& p_shader) { shader=p_shader; - if (shader->get_mode()==Shader::MODE_MATERIAL) { - vertex_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_MATERIAL_VERTEX); - fragment_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_MATERIAL_FRAGMENT); - light_editor->set_edited_shader(shader,ShaderLanguage::SHADER_MATERIAL_LIGHT); - } else if (shader->get_mode()==Shader::MODE_CANVAS_ITEM) { - - vertex_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_CANVAS_ITEM_VERTEX); - fragment_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_CANVAS_ITEM_FRAGMENT); - light_editor->set_edited_shader(shader,ShaderLanguage::SHADER_CANVAS_ITEM_LIGHT); - } + shader_editor->set_edited_shader(p_shader); //vertex_editor->set_edited_shader(shader,ShaderLanguage::SHADER_MATERIAL_VERTEX); // see if already has it @@ -442,35 +444,21 @@ void ShaderEditor::apply_shaders() { if (shader.is_valid()) { - shader->set_code(vertex_editor->get_text_edit()->get_text(),fragment_editor->get_text_edit()->get_text(),light_editor->get_text_edit()->get_text(),0,0); + shader->set_code(shader_editor->get_text_edit()->get_text()); shader->set_edited(true); } } -void ShaderEditor::_close_callback() { - - hide(); -} - ShaderEditor::ShaderEditor() { - tab_container = memnew( TabContainer ); - add_child(tab_container); - tab_container->set_area_as_parent_rect(); - tab_container->set_begin(Point2(0,0)); - //tab_container->set_begin(Point2(0,0)); - - close = memnew( TextureButton ); - close->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_END,20); - close->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,4); - close->set_anchor_and_margin(MARGIN_TOP,ANCHOR_BEGIN,2); - add_child(close); + HBoxContainer *hbc = memnew( HBoxContainer); + add_child(hbc); edit_menu = memnew( MenuButton ); - add_child(edit_menu); + hbc->add_child(edit_menu); edit_menu->set_pos(Point2(5,-1)); edit_menu->set_text(TTR("Edit")); edit_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/undo", TTR("Undo"), KEY_MASK_CMD|KEY_Z), EDIT_UNDO); @@ -481,11 +469,11 @@ ShaderEditor::ShaderEditor() { edit_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/paste", TTR("Paste"), KEY_MASK_CMD|KEY_V), EDIT_PASTE); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/select_all", TTR("Select All"), KEY_MASK_CMD|KEY_A), EDIT_SELECT_ALL); - edit_menu->get_popup()->connect("item_pressed", this,"_menu_option"); + edit_menu->get_popup()->connect("id_pressed", this,"_menu_option"); search_menu = memnew( MenuButton ); - add_child(search_menu); + hbc->add_child(search_menu); search_menu->set_pos(Point2(38,-1)); search_menu->set_text(TTR("Search")); search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find.."), KEY_MASK_CMD|KEY_F), SEARCH_FIND); @@ -493,39 +481,20 @@ ShaderEditor::ShaderEditor() { search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_previous", TTR("Find Previous"), KEY_MASK_SHIFT|KEY_F3), SEARCH_FIND_PREV); search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/replace", TTR("Replace.."), KEY_MASK_CMD|KEY_R), SEARCH_REPLACE); search_menu->get_popup()->add_separator(); -// search_menu->get_popup()->add_item("Locate Symbol..",SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K); + //search_menu->get_popup()->add_item("Locate Symbol..",SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K); search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/goto_line", TTR("Goto Line.."), KEY_MASK_CMD|KEY_L), SEARCH_GOTO_LINE); - search_menu->get_popup()->connect("item_pressed", this,"_menu_option"); - - - tab_container->connect("tab_changed", this,"_tab_changed"); - - erase_tab_confirm = memnew( ConfirmationDialog ); - add_child(erase_tab_confirm); - erase_tab_confirm->connect("confirmed", this,"_close_current_tab"); + search_menu->get_popup()->connect("id_pressed", this,"_menu_option"); goto_line_dialog = memnew(GotoLineDialog); add_child(goto_line_dialog); - vertex_editor = memnew( ShaderTextEditor ); - tab_container->add_child(vertex_editor); - vertex_editor->set_name(TTR("Vertex")); + shader_editor = memnew( ShaderTextEditor ); + add_child(shader_editor); + shader_editor->set_v_size_flags(SIZE_EXPAND_FILL); - fragment_editor = memnew( ShaderTextEditor ); - tab_container->add_child(fragment_editor); - fragment_editor->set_name(TTR("Fragment")); - light_editor = memnew( ShaderTextEditor ); - tab_container->add_child(light_editor); - light_editor->set_name(TTR("Lighting")); - - tab_container->set_current_tab(1); - - - vertex_editor->connect("script_changed", this,"apply_shaders"); - fragment_editor->connect("script_changed", this,"apply_shaders"); - light_editor->connect("script_changed", this,"apply_shaders"); + shader_editor->connect("script_changed", this,"apply_shaders"); EditorSettings::get_singleton()->connect("settings_changed",this,"_editor_settings_changed"); _editor_settings_changed(); @@ -535,15 +504,7 @@ ShaderEditor::ShaderEditor() { void ShaderEditorPlugin::edit(Object *p_object) { Shader* s = p_object->cast_to<Shader>(); - if (!s || s->cast_to<ShaderGraph>()) { - shader_editor->hide(); //Dont edit ShaderGraph - return; - } - - if (_2d && s->get_mode()==Shader::MODE_CANVAS_ITEM) - shader_editor->edit(s); - else if (!_2d && s->get_mode()==Shader::MODE_MATERIAL) - shader_editor->edit(s); + shader_editor->edit(s); } @@ -551,24 +512,27 @@ bool ShaderEditorPlugin::handles(Object *p_object) const { bool handles = true; Shader *shader=p_object->cast_to<Shader>(); + /* if (!shader || shader->cast_to<ShaderGraph>()) // Dont handle ShaderGraph's handles = false; - if (handles && _2d) - handles = shader->get_mode()==Shader::MODE_CANVAS_ITEM; - else if (handles && !_2d) - return shader->get_mode()==Shader::MODE_MATERIAL; - - if (!handles) - shader_editor->hide(); - return handles; + */ + + return shader!=NULL; } void ShaderEditorPlugin::make_visible(bool p_visible) { if (p_visible) { - shader_editor->show(); + button->show(); + editor->make_bottom_panel_item_visible(shader_editor); + } else { + + button->hide(); + if (shader_editor->is_visible_in_tree()) + editor->hide_bottom_panel(); shader_editor->apply_shaders(); + } } @@ -602,19 +566,14 @@ void ShaderEditorPlugin::apply_changes() { shader_editor->apply_shaders(); } -ShaderEditorPlugin::ShaderEditorPlugin(EditorNode *p_node, bool p_2d) { +ShaderEditorPlugin::ShaderEditorPlugin(EditorNode *p_node) { + editor=p_node; shader_editor = memnew( ShaderEditor ); - _2d=p_2d; - if (p_2d) - add_control_to_container(CONTAINER_CANVAS_EDITOR_BOTTOM,shader_editor); - else - add_control_to_container(CONTAINER_SPATIAL_EDITOR_BOTTOM,shader_editor); -// editor->get_viewport()->add_child(shader_editor); -// shader_editor->set_area_as_parent_rect(); - shader_editor->hide(); + shader_editor->set_custom_minimum_size(Size2(0,300)); + button=editor->add_bottom_panel_item("Shader",shader_editor); } @@ -622,3 +581,4 @@ ShaderEditorPlugin::ShaderEditorPlugin(EditorNode *p_node, bool p_2d) { ShaderEditorPlugin::~ShaderEditorPlugin() { } + diff --git a/tools/editor/plugins/shader_editor_plugin.h b/tools/editor/plugins/shader_editor_plugin.h index 9219a1fbc2..e94b4d9c25 100644 --- a/tools/editor/plugins/shader_editor_plugin.h +++ b/tools/editor/plugins/shader_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -38,33 +38,34 @@ #include "scene/resources/shader.h" #include "servers/visual/shader_language.h" - class ShaderTextEditor : public CodeTextEditor { - OBJ_TYPE( ShaderTextEditor, CodeTextEditor ); + GDCLASS( ShaderTextEditor, CodeTextEditor ); Ref<Shader> shader; - ShaderLanguage::ShaderType type; protected: static void _bind_methods(); virtual void _load_theme_settings(); + + virtual void _code_complete_script(const String& p_code, List<String>* r_options); + public: virtual void _validate_script(); Ref<Shader> get_edited_shader() const; - void set_edited_shader(const Ref<Shader>& p_shader,ShaderLanguage::ShaderType p_type); + void set_edited_shader(const Ref<Shader>& p_shader); ShaderTextEditor(); }; -class ShaderEditor : public Control { +class ShaderEditor : public VBoxContainer { - OBJ_TYPE(ShaderEditor, Control ); + GDCLASS(ShaderEditor, VBoxContainer ); enum { @@ -88,22 +89,17 @@ class ShaderEditor : public Control { MenuButton *settings_menu; uint64_t idle; - TabContainer *tab_container; GotoLineDialog *goto_line_dialog; ConfirmationDialog *erase_tab_confirm; - TextureButton *close; - ShaderTextEditor *vertex_editor; - ShaderTextEditor *fragment_editor; - ShaderTextEditor *light_editor; + ShaderTextEditor *shader_editor; + - void _tab_changed(int p_which); void _menu_option(int p_optin); void _params_changed(); mutable Ref<Shader> shader; - void _close_callback(); void _editor_settings_changed(); @@ -129,11 +125,13 @@ public: class ShaderEditorPlugin : public EditorPlugin { - OBJ_TYPE( ShaderEditorPlugin, EditorPlugin ); + GDCLASS( ShaderEditorPlugin, EditorPlugin ); bool _2d; ShaderEditor *shader_editor; EditorNode *editor; + Button *button; + public: virtual String get_name() const { return "Shader"; } @@ -150,8 +148,9 @@ public: virtual void save_external_data(); virtual void apply_changes(); - ShaderEditorPlugin(EditorNode *p_node,bool p_2d); + ShaderEditorPlugin(EditorNode *p_node); ~ShaderEditorPlugin(); }; + #endif diff --git a/tools/editor/plugins/shader_graph_editor_plugin.cpp b/tools/editor/plugins/shader_graph_editor_plugin.cpp index 3ab906f84e..d86fec11d8 100644 --- a/tools/editor/plugins/shader_graph_editor_plugin.cpp +++ b/tools/editor/plugins/shader_graph_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,6 +28,7 @@ /*************************************************************************/ #include "shader_graph_editor_plugin.h" +#if 0 #include "scene/gui/check_box.h" #include "scene/gui/menu_button.h" @@ -36,7 +37,7 @@ #include "os/keyboard.h" #include "canvas_item_editor_plugin.h" -void GraphColorRampEdit::_input_event(const InputEvent& p_event) { +void GraphColorRampEdit::_gui_input(const InputEvent& p_event) { if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode==KEY_DELETE && grabbed!=-1) { @@ -295,8 +296,8 @@ Vector<Color> GraphColorRampEdit::get_colors() const{ void GraphColorRampEdit::_bind_methods(){ - ObjectTypeDB::bind_method(_MD("_input_event"),&GraphColorRampEdit::_input_event); - ObjectTypeDB::bind_method(_MD("_color_changed"),&GraphColorRampEdit::_color_changed); + ClassDB::bind_method(_MD("_gui_input"),&GraphColorRampEdit::_gui_input); + ClassDB::bind_method(_MD("_color_changed"),&GraphColorRampEdit::_color_changed); ADD_SIGNAL(MethodInfo("ramp_changed")); } @@ -309,13 +310,13 @@ GraphColorRampEdit::GraphColorRampEdit(){ popup = memnew( PopupPanel ); picker = memnew( ColorPicker ); popup->add_child(picker); - popup->set_child_rect(picker); + /popup->set_child_rect(picker); add_child(popup); } //////////// -void GraphCurveMapEdit::_input_event(const InputEvent& p_event) { +void GraphCurveMapEdit::_gui_input(const InputEvent& p_event) { if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode==KEY_DELETE && grabbed!=-1) { @@ -463,8 +464,7 @@ void GraphCurveMapEdit::_plot_curve(const Vector2& p_a,const Vector2& p_b,const /* compose the basis and geometry matrices */ - static const float CR_basis[4][4] = - { + static const float CR_basis[4][4] = { { -0.5, 1.5, -1.5, 0.5 }, { 1.0, -2.5, 2.0, -0.5 }, { -0.5, 0.0, 0.5, 0.0 }, @@ -657,7 +657,7 @@ Vector<Vector2> GraphCurveMapEdit::get_points() const { void GraphCurveMapEdit::_bind_methods(){ - ObjectTypeDB::bind_method(_MD("_input_event"),&GraphCurveMapEdit::_input_event); + ClassDB::bind_method(_MD("_gui_input"),&GraphCurveMapEdit::_gui_input); ADD_SIGNAL(MethodInfo("curve_changed")); } @@ -985,13 +985,13 @@ void ShaderGraphView::_color_ramp_changed(int p_id,Node* p_ramp) { Vector<float> offsets=cr->get_offsets(); Vector<Color> colors=cr->get_colors(); - DVector<float> new_offsets; - DVector<Color> new_colors; + PoolVector<float> new_offsets; + PoolVector<Color> new_colors; { new_offsets.resize(offsets.size()); new_colors.resize(colors.size()); - DVector<float>::Write ow=new_offsets.write(); - DVector<Color>::Write cw=new_colors.write(); + PoolVector<float>::Write ow=new_offsets.write(); + PoolVector<Color>::Write cw=new_colors.write(); for(int i=0;i<new_offsets.size();i++) { ow[i]=offsets[i]; cw[i]=colors[i]; @@ -1000,8 +1000,8 @@ void ShaderGraphView::_color_ramp_changed(int p_id,Node* p_ramp) { } - DVector<float> old_offsets=graph->color_ramp_node_get_offsets(type,p_id); - DVector<Color> old_colors=graph->color_ramp_node_get_colors(type,p_id); + PoolVector<float> old_offsets=graph->color_ramp_node_get_offsets(type,p_id); + PoolVector<Color> old_colors=graph->color_ramp_node_get_colors(type,p_id); if (old_offsets.size()!=new_offsets.size()) ur->create_action(TTR("Add/Remove to Color Ramp")); @@ -1026,10 +1026,10 @@ void ShaderGraphView::_curve_changed(int p_id,Node* p_curve) { Vector<Point2> points=cr->get_points(); - DVector<Vector2> new_points; + PoolVector<Vector2> new_points; { new_points.resize(points.size()); - DVector<Vector2>::Write ow=new_points.write(); + PoolVector<Vector2>::Write ow=new_points.write(); for(int i=0;i<new_points.size();i++) { ow[i]=points[i]; } @@ -1037,7 +1037,7 @@ void ShaderGraphView::_curve_changed(int p_id,Node* p_curve) { } - DVector<Vector2> old_points=graph->curve_map_node_get_points(type,p_id); + PoolVector<Vector2> old_points=graph->curve_map_node_get_points(type,p_id); if (old_points.size()!=new_points.size()) ur->create_action(TTR("Add/Remove to Curve Map")); @@ -1377,7 +1377,7 @@ ToolButton *ShaderGraphView::make_editor(String text,GraphNode* gn,int p_id,int edit->set_icon(ped_popup->get_icon("Matrix", "EditorIcons")); break; case Variant::COLOR: { - Image icon_color = Image(15,15,false,Image::FORMAT_RGB); + Image icon_color = Image(15,15,false,Image::FORMAT_RGB8); Color c = graph->default_get_value(type,p_id,param); for (int x=1;x<14;x++) for (int y=1;y<14;y++) @@ -2130,14 +2130,14 @@ void ShaderGraphView::_create_node(int p_id) { gn->set_title("ColorRamp"); GraphColorRampEdit * ramp = memnew( GraphColorRampEdit ); - DVector<real_t> offsets = graph->color_ramp_node_get_offsets(type,p_id); - DVector<Color> colors = graph->color_ramp_node_get_colors(type,p_id); + PoolVector<real_t> offsets = graph->color_ramp_node_get_offsets(type,p_id); + PoolVector<Color> colors = graph->color_ramp_node_get_colors(type,p_id); int oc = offsets.size(); if (oc) { - DVector<real_t>::Read rofs = offsets.read(); - DVector<Color>::Read rcol = colors.read(); + PoolVector<real_t>::Read rofs = offsets.read(); + PoolVector<Color>::Read rcol = colors.read(); Vector<float> ofsv; Vector<Color> colorv; @@ -2183,12 +2183,12 @@ void ShaderGraphView::_create_node(int p_id) { gn->set_title("CurveMap"); GraphCurveMapEdit * map = memnew( GraphCurveMapEdit ); - DVector<Vector2> points = graph->curve_map_node_get_points(type,p_id); + PoolVector<Vector2> points = graph->curve_map_node_get_points(type,p_id); int oc = points.size(); if (oc) { - DVector<Vector2>::Read rofs = points.read(); + PoolVector<Vector2>::Read rofs = points.read(); Vector<Vector2> ofsv; @@ -2314,12 +2314,12 @@ void ShaderGraphView::_create_node(int p_id) { gn->add_child(le); le->set_text(graph->input_node_get_name(type,p_id)); le->connect("text_entered",this,"_input_name_changed",varray(p_id,le)); - TextureFrame *tex = memnew( TextureFrame ); + TextureRect *tex = memnew( TextureRect ); tex->set_expand(true); tex->set_custom_minimum_size(Size2(80,80)); tex->set_drag_forwarding(this); gn->add_child(tex); - tex->set_ignore_mouse(false); + tex->set_mouse_filter(MOUSE_FILTER_PASS); tex->set_texture(graph->texture_input_node_get_value(type,p_id)); ToolButton *edit = memnew( ToolButton ); edit->set_text("edit.."); @@ -2529,7 +2529,7 @@ void ShaderGraphView::_sg_updated() { Variant ShaderGraphView::get_drag_data_fw(const Point2 &p_point, Control *p_from) { - TextureFrame* frame = p_from->cast_to<TextureFrame>(); + TextureRect* frame = p_from->cast_to<TextureRect>(); if (!frame) return Variant(); @@ -2575,7 +2575,7 @@ void ShaderGraphView::drop_data_fw(const Point2 &p_point, const Variant &p_data, if (!can_drop_data_fw(p_point, p_data, p_from)) return; - TextureFrame *frame = p_from->cast_to<TextureFrame>(); + TextureRect *frame = p_from->cast_to<TextureRect>(); if (!frame) return; @@ -2694,49 +2694,49 @@ void ShaderGraphView::add_node(int p_type, const Vector2 &location) { void ShaderGraphView::_bind_methods() { - ObjectTypeDB::bind_method("_update_graph",&ShaderGraphView::_update_graph); - ObjectTypeDB::bind_method("_begin_node_move", &ShaderGraphView::_begin_node_move); - ObjectTypeDB::bind_method("_node_moved",&ShaderGraphView::_node_moved); - ObjectTypeDB::bind_method("_end_node_move", &ShaderGraphView::_end_node_move); - ObjectTypeDB::bind_method("_move_node",&ShaderGraphView::_move_node); - ObjectTypeDB::bind_method("_node_removed",&ShaderGraphView::_node_removed); - ObjectTypeDB::bind_method("_connection_request",&ShaderGraphView::_connection_request); - ObjectTypeDB::bind_method("_disconnection_request",&ShaderGraphView::_disconnection_request); - ObjectTypeDB::bind_method("_duplicate_nodes_request", &ShaderGraphView::_duplicate_nodes_request); - ObjectTypeDB::bind_method("_duplicate_nodes", &ShaderGraphView::_duplicate_nodes); - ObjectTypeDB::bind_method("_delete_nodes_request", &ShaderGraphView::_delete_nodes_request); - - ObjectTypeDB::bind_method("_default_changed",&ShaderGraphView::_default_changed); - ObjectTypeDB::bind_method("_scalar_const_changed",&ShaderGraphView::_scalar_const_changed); - ObjectTypeDB::bind_method("_vec_const_changed",&ShaderGraphView::_vec_const_changed); - ObjectTypeDB::bind_method("_rgb_const_changed",&ShaderGraphView::_rgb_const_changed); - ObjectTypeDB::bind_method("_xform_const_changed",&ShaderGraphView::_xform_const_changed); - ObjectTypeDB::bind_method("_scalar_op_changed",&ShaderGraphView::_scalar_op_changed); - ObjectTypeDB::bind_method("_vec_op_changed",&ShaderGraphView::_vec_op_changed); - ObjectTypeDB::bind_method("_vec_scalar_op_changed",&ShaderGraphView::_vec_scalar_op_changed); - ObjectTypeDB::bind_method("_rgb_op_changed",&ShaderGraphView::_rgb_op_changed); - ObjectTypeDB::bind_method("_xform_inv_rev_changed",&ShaderGraphView::_xform_inv_rev_changed); - ObjectTypeDB::bind_method("_scalar_func_changed",&ShaderGraphView::_scalar_func_changed); - ObjectTypeDB::bind_method("_vec_func_changed",&ShaderGraphView::_vec_func_changed); - ObjectTypeDB::bind_method("_scalar_input_changed",&ShaderGraphView::_scalar_input_changed); - ObjectTypeDB::bind_method("_vec_input_changed",&ShaderGraphView::_vec_input_changed); - ObjectTypeDB::bind_method("_xform_input_changed",&ShaderGraphView::_xform_input_changed); - ObjectTypeDB::bind_method("_rgb_input_changed",&ShaderGraphView::_rgb_input_changed); - ObjectTypeDB::bind_method("_tex_input_change",&ShaderGraphView::_tex_input_change); - ObjectTypeDB::bind_method("_cube_input_change",&ShaderGraphView::_cube_input_change); - ObjectTypeDB::bind_method("_input_name_changed",&ShaderGraphView::_input_name_changed); - ObjectTypeDB::bind_method("_tex_edited",&ShaderGraphView::_tex_edited); - ObjectTypeDB::bind_method("_variant_edited",&ShaderGraphView::_variant_edited); - ObjectTypeDB::bind_method("_cube_edited",&ShaderGraphView::_cube_edited); - ObjectTypeDB::bind_method("_comment_edited",&ShaderGraphView::_comment_edited); - ObjectTypeDB::bind_method("_color_ramp_changed",&ShaderGraphView::_color_ramp_changed); - ObjectTypeDB::bind_method("_curve_changed",&ShaderGraphView::_curve_changed); - - ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &ShaderGraphView::get_drag_data_fw); - ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &ShaderGraphView::can_drop_data_fw); - ObjectTypeDB::bind_method(_MD("drop_data_fw"), &ShaderGraphView::drop_data_fw); - - ObjectTypeDB::bind_method("_sg_updated",&ShaderGraphView::_sg_updated); + ClassDB::bind_method("_update_graph",&ShaderGraphView::_update_graph); + ClassDB::bind_method("_begin_node_move", &ShaderGraphView::_begin_node_move); + ClassDB::bind_method("_node_moved",&ShaderGraphView::_node_moved); + ClassDB::bind_method("_end_node_move", &ShaderGraphView::_end_node_move); + ClassDB::bind_method("_move_node",&ShaderGraphView::_move_node); + ClassDB::bind_method("_node_removed",&ShaderGraphView::_node_removed); + ClassDB::bind_method("_connection_request",&ShaderGraphView::_connection_request); + ClassDB::bind_method("_disconnection_request",&ShaderGraphView::_disconnection_request); + ClassDB::bind_method("_duplicate_nodes_request", &ShaderGraphView::_duplicate_nodes_request); + ClassDB::bind_method("_duplicate_nodes", &ShaderGraphView::_duplicate_nodes); + ClassDB::bind_method("_delete_nodes_request", &ShaderGraphView::_delete_nodes_request); + + ClassDB::bind_method("_default_changed",&ShaderGraphView::_default_changed); + ClassDB::bind_method("_scalar_const_changed",&ShaderGraphView::_scalar_const_changed); + ClassDB::bind_method("_vec_const_changed",&ShaderGraphView::_vec_const_changed); + ClassDB::bind_method("_rgb_const_changed",&ShaderGraphView::_rgb_const_changed); + ClassDB::bind_method("_xform_const_changed",&ShaderGraphView::_xform_const_changed); + ClassDB::bind_method("_scalar_op_changed",&ShaderGraphView::_scalar_op_changed); + ClassDB::bind_method("_vec_op_changed",&ShaderGraphView::_vec_op_changed); + ClassDB::bind_method("_vec_scalar_op_changed",&ShaderGraphView::_vec_scalar_op_changed); + ClassDB::bind_method("_rgb_op_changed",&ShaderGraphView::_rgb_op_changed); + ClassDB::bind_method("_xform_inv_rev_changed",&ShaderGraphView::_xform_inv_rev_changed); + ClassDB::bind_method("_scalar_func_changed",&ShaderGraphView::_scalar_func_changed); + ClassDB::bind_method("_vec_func_changed",&ShaderGraphView::_vec_func_changed); + ClassDB::bind_method("_scalar_input_changed",&ShaderGraphView::_scalar_input_changed); + ClassDB::bind_method("_vec_input_changed",&ShaderGraphView::_vec_input_changed); + ClassDB::bind_method("_xform_input_changed",&ShaderGraphView::_xform_input_changed); + ClassDB::bind_method("_rgb_input_changed",&ShaderGraphView::_rgb_input_changed); + ClassDB::bind_method("_tex_input_change",&ShaderGraphView::_tex_input_change); + ClassDB::bind_method("_cube_input_change",&ShaderGraphView::_cube_input_change); + ClassDB::bind_method("_input_name_changed",&ShaderGraphView::_input_name_changed); + ClassDB::bind_method("_tex_edited",&ShaderGraphView::_tex_edited); + ClassDB::bind_method("_variant_edited",&ShaderGraphView::_variant_edited); + ClassDB::bind_method("_cube_edited",&ShaderGraphView::_cube_edited); + ClassDB::bind_method("_comment_edited",&ShaderGraphView::_comment_edited); + ClassDB::bind_method("_color_ramp_changed",&ShaderGraphView::_color_ramp_changed); + ClassDB::bind_method("_curve_changed",&ShaderGraphView::_curve_changed); + + ClassDB::bind_method(_MD("get_drag_data_fw"), &ShaderGraphView::get_drag_data_fw); + ClassDB::bind_method(_MD("can_drop_data_fw"), &ShaderGraphView::can_drop_data_fw); + ClassDB::bind_method(_MD("drop_data_fw"), &ShaderGraphView::drop_data_fw); + + ClassDB::bind_method("_sg_updated",&ShaderGraphView::_sg_updated); } ShaderGraphView::ShaderGraphView(ShaderGraph::ShaderType p_type) { @@ -2806,7 +2806,7 @@ void ShaderGraphEditor::_notification(int p_what) { if (addsep) popup->add_separator(); } - popup->connect("item_pressed",this,"_add_node"); + popup->connect("id_pressed",this,"_add_node"); } @@ -2814,8 +2814,8 @@ void ShaderGraphEditor::_notification(int p_what) { void ShaderGraphEditor::_bind_methods() { - ObjectTypeDB::bind_method("_add_node",&ShaderGraphEditor::_add_node); - ObjectTypeDB::bind_method("_popup_requested",&ShaderGraphEditor::_popup_requested); + ClassDB::bind_method("_add_node",&ShaderGraphEditor::_add_node); + ClassDB::bind_method("_popup_requested",&ShaderGraphEditor::_popup_requested); } @@ -2932,9 +2932,9 @@ ShaderGraphEditorPlugin::ShaderGraphEditorPlugin(EditorNode *p_node, bool p_2d) SpatialEditor::get_singleton()->get_shader_split()->add_child(shader_editor); - // editor->get_viewport()->add_child(shader_editor); - // shader_editor->set_area_as_parent_rect(); - // shader_editor->hide(); + //editor->get_viewport()->add_child(shader_editor); + //shader_editor->set_area_as_parent_rect(); + //shader_editor->hide(); } @@ -2945,3 +2945,4 @@ ShaderGraphEditorPlugin::~ShaderGraphEditorPlugin() +#endif diff --git a/tools/editor/plugins/shader_graph_editor_plugin.h b/tools/editor/plugins/shader_graph_editor_plugin.h index 67ee5e2d45..477a45bd1f 100644 --- a/tools/editor/plugins/shader_graph_editor_plugin.h +++ b/tools/editor/plugins/shader_graph_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -43,10 +43,10 @@ @author Juan Linietsky <reduzio@gmail.com> */ - +#if 0 class GraphColorRampEdit : public Control { - OBJ_TYPE(GraphColorRampEdit,Control); + GDCLASS(GraphColorRampEdit,Control); struct Point { @@ -70,7 +70,7 @@ class GraphColorRampEdit : public Control { void _color_changed(const Color& p_color); protected: - void _input_event(const InputEvent& p_event); + void _gui_input(const InputEvent& p_event); void _notification(int p_what); static void _bind_methods(); public: @@ -85,7 +85,7 @@ public: class GraphCurveMapEdit : public Control { - OBJ_TYPE(GraphCurveMapEdit,Control); + GDCLASS(GraphCurveMapEdit,Control); struct Point { @@ -104,7 +104,7 @@ class GraphCurveMapEdit : public Control { void _plot_curve(const Vector2& p_a,const Vector2& p_b,const Vector2& p_c,const Vector2& p_d); protected: - void _input_event(const InputEvent& p_event); + void _gui_input(const InputEvent& p_event); void _notification(int p_what); static void _bind_methods(); public: @@ -117,7 +117,7 @@ public: class ShaderGraphView : public Control { - OBJ_TYPE(ShaderGraphView,Control); + GDCLASS(ShaderGraphView,Control); @@ -198,7 +198,7 @@ public: class ShaderGraphEditor : public VBoxContainer { - OBJ_TYPE(ShaderGraphEditor,VBoxContainer); + GDCLASS(ShaderGraphEditor,VBoxContainer); PopupMenu *popup; TabContainer *tabs; @@ -220,7 +220,7 @@ public: class ShaderGraphEditorPlugin : public EditorPlugin { - OBJ_TYPE( ShaderGraphEditorPlugin, EditorPlugin ); + GDCLASS( ShaderGraphEditorPlugin, EditorPlugin ); bool _2d; ShaderGraphEditor *shader_editor; @@ -239,4 +239,4 @@ public: }; #endif - +#endif diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp index 6dcc71422a..9f8367ff1d 100644 --- a/tools/editor/plugins/spatial_editor_plugin.cpp +++ b/tools/editor/plugins/spatial_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,8 +27,8 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "spatial_editor_plugin.h" -#include "print_string.h" +#include "print_string.h" #include "os/keyboard.h" #include "scene/3d/visual_instance.h" #include "scene/3d/camera.h" @@ -61,8 +61,8 @@ void SpatialEditorViewport::_update_camera() { Transform camera_transform; camera_transform.translate(cursor.pos); - camera_transform.basis.rotate(Vector3(0, 1, 0), cursor.y_rot); - camera_transform.basis.rotate(Vector3(1, 0, 0), cursor.x_rot); + camera_transform.basis.rotate(Vector3(1, 0, 0), -cursor.x_rot); + camera_transform.basis.rotate(Vector3(0, 1, 0), -cursor.y_rot); if (orthogonal) camera_transform.translate(0, 0, 4096); @@ -274,11 +274,11 @@ ObjectID SpatialEditorViewport::_select_ray(const Point2& p_pos, bool p_append,b Vector3 ray=_get_ray(p_pos); Vector3 pos=_get_ray_pos(p_pos); - Vector<RID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() ); + Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() ); Set<Ref<SpatialEditorGizmo> > found_gizmos; //uint32_t closest=0; -// float closest_dist=0; + //float closest_dist=0; r_includes_current=false; @@ -286,8 +286,7 @@ ObjectID SpatialEditorViewport::_select_ray(const Point2& p_pos, bool p_append,b for (int i=0;i<instances.size();i++) { - uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]); - Object *obj=ObjectDB::get_instance(id); + Object *obj=ObjectDB::get_instance(instances[i]); if (!obj) continue; @@ -405,15 +404,15 @@ void SpatialEditorViewport::_find_items_at_pos(const Point2& p_pos,bool &r_inclu Vector3 ray=_get_ray(p_pos); Vector3 pos=_get_ray_pos(p_pos); - Vector<RID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() ); + Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() ); Set<Ref<SpatialEditorGizmo> > found_gizmos; r_includes_current=false; for (int i=0;i<instances.size();i++) { - uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]); - Object *obj=ObjectDB::get_instance(id); + Object *obj=ObjectDB::get_instance(instances[i]); + if (!obj) continue; @@ -469,14 +468,14 @@ Vector3 SpatialEditorViewport::_get_screen_to_space(const Vector3& p_pos) { CameraMatrix cm; - cm.set_perspective(get_fov(),get_size().get_aspect(),get_znear(),get_zfar()); + cm.set_perspective(get_fov(),get_size().aspect(),get_znear(),get_zfar()); float screen_w,screen_h; cm.get_viewport_size(screen_w,screen_h); Transform camera_transform; camera_transform.translate( cursor.pos ); - camera_transform.basis.rotate(Vector3(0,1,0),cursor.y_rot); - camera_transform.basis.rotate(Vector3(1,0,0),cursor.x_rot); + camera_transform.basis.rotate(Vector3(1,0,0),-cursor.x_rot); + camera_transform.basis.rotate(Vector3(0,1,0),-cursor.y_rot); camera_transform.translate(0,0,cursor.distance); return camera_transform.xform(Vector3( ((p_pos.x/get_size().width)*2.0-1.0)*screen_w, ((1.0-(p_pos.y/get_size().height))*2.0-1.0)*screen_h,-get_znear())); @@ -534,14 +533,12 @@ void SpatialEditorViewport::_select_region() { frustum.push_back( far ); - Vector<RID> instances=VisualServer::get_singleton()->instances_cull_convex(frustum,get_tree()->get_root()->get_world()->get_scenario()); + Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_convex(frustum,get_tree()->get_root()->get_world()->get_scenario()); for (int i=0;i<instances.size();i++) { - uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]); - - Object *obj=ObjectDB::get_instance(id); + Object *obj=ObjectDB::get_instance(instances[i]); if (!obj) continue; Spatial *sp = obj->cast_to<Spatial>(); @@ -583,8 +580,8 @@ void SpatialEditorViewport::_compute_edit(const Point2& p_point) { List<Node*> &selection = editor_selection->get_selected_node_list(); -// Vector3 center; -// int nc=0; + //Vector3 center; + //int nc=0; for(List<Node*>::Element *E=selection.front();E;E=E->next()) { Spatial *sp = E->get()->cast_to<Spatial>(); @@ -596,16 +593,14 @@ void SpatialEditorViewport::_compute_edit(const Point2& p_point) { continue; se->original=se->sp->get_global_transform(); -// center+=se->original.origin; -// nc++; + //center+=se->original.origin; + //nc++; } - -// if (nc) -// _edit.center=center/float(nc); - - - + /* + if (nc) + _edit.center=center/float(nc); + */ } static int _get_key_modifier(const String& p_property) { @@ -621,23 +616,6 @@ static int _get_key_modifier(const String& p_property) { return 0; } -SpatialEditorViewport::NavigationScheme SpatialEditorViewport::_get_navigation_schema(const String& p_property) { - switch(EditorSettings::get_singleton()->get(p_property).operator int()) { - case 0: return NAVIGATION_GODOT; - case 1: return NAVIGATION_MAYA; - case 2: return NAVIGATION_MODO; - } - return NAVIGATION_GODOT; -} - -SpatialEditorViewport::NavigationZoomStyle SpatialEditorViewport::_get_navigation_zoom_style(const String& p_property) { - switch(EditorSettings::get_singleton()->get(p_property).operator int()) { - case 0: return NAVIGATION_ZOOM_VERTICAL; - case 1: return NAVIGATION_ZOOM_HORIZONTAL; - } - return NAVIGATION_ZOOM_VERTICAL; -} - bool SpatialEditorViewport::_gizmo_select(const Vector2& p_screenpos,bool p_hilite_only) { if (!spatial_editor->is_gizmo_visible()) @@ -795,7 +773,7 @@ void SpatialEditorViewport::_list_select(InputEventMouseButton b) { if (spat->has_meta("_editor_icon")) icon=spat->get_meta("_editor_icon"); else - icon=get_icon( has_icon(spat->get_type(),"EditorIcons")?spat->get_type():String("Object"),"EditorIcons"); + icon=get_icon( has_icon(spat->get_class(),"EditorIcons")?spat->get_class():String("Object"),"EditorIcons"); String node_path="/"+root_name+"/"+root_path.rel_path_to(spat->get_path()); @@ -803,7 +781,7 @@ void SpatialEditorViewport::_list_select(InputEventMouseButton b) { selection_menu->set_item_icon(i, icon ); selection_menu->set_item_metadata(i, node_path); selection_menu->set_item_tooltip(i,String(spat->get_name())+ - "\nType: "+spat->get_type()+"\nPath: "+node_path); + "\nType: "+spat->get_class()+"\nPath: "+node_path); } selection_menu->set_global_pos(Vector2( b.global_x, b.global_y )); @@ -827,7 +805,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { EditorPluginList *over_plugin_list = en->get_editor_plugins_over(); if (!over_plugin_list->empty()) { - bool discard = over_plugin_list->forward_spatial_input_event(camera,p_event); + bool discard = over_plugin_list->forward_spatial_gui_input(camera,p_event); if (discard) return; } @@ -857,7 +835,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { } break; case BUTTON_RIGHT: { - NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme"); + NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation_scheme").operator int(); if (b.pressed && _edit.gizmo.is_valid()) { //restore @@ -877,7 +855,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { if (b.mod.control) { - Vector<RID> instances=VisualServer::get_singleton()->instances_cull_ray(ray_origin,ray_dir,get_tree()->get_root()->get_world()->get_scenario() ); + Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_ray(ray_origin,ray_dir,get_tree()->get_root()->get_world()->get_scenario() ); Plane p(ray_origin,_get_camera_normal()); @@ -886,8 +864,9 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { for (int i=0;i<instances.size();i++) { - uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]); - Object *obj=ObjectDB::get_instance(id); + + Object *obj=ObjectDB::get_instance(instances[i]); + if (!obj) continue; @@ -896,14 +875,14 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { continue; //optimize by checking AABB (although should pre sort by distance) - AABB aabb = vi->get_global_transform().xform(vi->get_aabb()); + Rect3 aabb = vi->get_global_transform().xform(vi->get_aabb()); if (p.distance_to(aabb.get_support(-ray_dir))>min_d) continue; - DVector<Face3> faces = vi->get_faces(VisualInstance::FACES_SOLID); + PoolVector<Face3> faces = vi->get_faces(VisualInstance::FACES_SOLID); int c = faces.size(); if (c>0) { - DVector<Face3>::Read r = faces.read(); + PoolVector<Face3>::Read r = faces.read(); for(int j=0;j<c;j++) { @@ -1016,7 +995,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { if (b.pressed) { - NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme"); + NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation_scheme").operator int(); if ( (nav_scheme==NAVIGATION_MAYA || nav_scheme==NAVIGATION_MODO) && b.mod.alt) { break; } @@ -1253,7 +1232,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { } - NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme"); + NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation_scheme").operator int(); NavigationMode nav_mode = NAVIGATION_NONE; if (_edit.gizmo.is_valid()) { @@ -1354,7 +1333,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { Transform original=se->original; - Transform base=Transform( Matrix3(), _edit.center); + Transform base=Transform( Basis(), _edit.center); Transform t=base * (r * (base.inverse() * original)); sp->set_global_transform(t); @@ -1486,7 +1465,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { Transform r; - r.basis.rotate(plane.normal,-angle); + r.basis.rotate(plane.normal,angle); List<Node*> &selection = editor_selection->get_selected_node_list(); @@ -1503,8 +1482,8 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { Transform original=se->original; - Transform base=Transform( Matrix3(), _edit.center); - Transform t=base * (r * (base.inverse() * original)); + Transform base=Transform( Basis(), _edit.center); + Transform t=base * r * base.inverse() * original; sp->set_global_transform(t); } @@ -1548,11 +1527,11 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { if (m.mod.meta) mod=KEY_META; - if (mod == _get_key_modifier("3d_editor/pan_modifier")) + if (mod == _get_key_modifier("editors/3d/pan_modifier")) nav_mode = NAVIGATION_PAN; - else if (mod == _get_key_modifier("3d_editor/zoom_modifier")) + else if (mod == _get_key_modifier("editors/3d/zoom_modifier")) nav_mode = NAVIGATION_ZOOM; - else if (mod == _get_key_modifier("3d_editor/orbit_modifier")) + else if (mod == _get_key_modifier("editors/3d/orbit_modifier")) nav_mode = NAVIGATION_ORBIT; } else if (nav_scheme == NAVIGATION_MAYA) { @@ -1560,7 +1539,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { nav_mode = NAVIGATION_PAN; } - } else if (EditorSettings::get_singleton()->get("3d_editor/emulate_3_button_mouse")) { + } else if (EditorSettings::get_singleton()->get("editors/3d/emulate_3_button_mouse")) { // Handle trackpad (no external mouse) use case int mod = 0; if (m.mod.shift) @@ -1573,11 +1552,11 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { mod=KEY_META; if(mod){ - if (mod == _get_key_modifier("3d_editor/pan_modifier")) + if (mod == _get_key_modifier("editors/3d/pan_modifier")) nav_mode = NAVIGATION_PAN; - else if (mod == _get_key_modifier("3d_editor/zoom_modifier")) + else if (mod == _get_key_modifier("editors/3d/zoom_modifier")) nav_mode = NAVIGATION_ZOOM; - else if (mod == _get_key_modifier("3d_editor/orbit_modifier")) + else if (mod == _get_key_modifier("editors/3d/orbit_modifier")) nav_mode = NAVIGATION_ORBIT; } } @@ -1593,8 +1572,8 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { Transform camera_transform; camera_transform.translate(cursor.pos); - camera_transform.basis.rotate(Vector3(0,1,0),cursor.y_rot); - camera_transform.basis.rotate(Vector3(1,0,0),cursor.x_rot); + camera_transform.basis.rotate(Vector3(1,0,0),-cursor.x_rot); + camera_transform.basis.rotate(Vector3(0,1,0),-cursor.y_rot); Vector3 translation(-m.relative_x*pan_speed,m.relative_y*pan_speed,0); translation*=cursor.distance/DISTANCE_DEFAULT; camera_transform.translate(translation); @@ -1608,7 +1587,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { if (nav_scheme==NAVIGATION_MAYA && m.mod.shift) zoom_speed *= zoom_speed_modifier; - NavigationZoomStyle zoom_style = _get_navigation_zoom_style("3d_editor/zoom_style"); + NavigationZoomStyle zoom_style = (NavigationZoomStyle)EditorSettings::get_singleton()->get("editors/3d/zoom_style").operator int(); if (zoom_style == NAVIGATION_ZOOM_HORIZONTAL) { if ( m.relative_x > 0) cursor.distance*=1-m.relative_x*zoom_speed; @@ -1742,7 +1721,7 @@ void SpatialEditorViewport::_notification(int p_what) { if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { - bool visible=is_visible(); + bool visible=is_visible_in_tree(); set_process(visible); @@ -1793,7 +1772,7 @@ void SpatialEditorViewport::_notification(int p_what) { if (se->aabb.has_no_surface()) { - se->aabb=vi?vi->get_aabb():AABB( Vector3(-0.2,-0.2,-0.2),Vector3(0.4,0.4,0.4)); + se->aabb=vi?vi->get_aabb():Rect3( Vector3(-0.2,-0.2,-0.2),Vector3(0.4,0.4,0.4)); } Transform t=sp->get_global_transform(); @@ -1825,13 +1804,37 @@ void SpatialEditorViewport::_notification(int p_what) { surface->update(); } + //update shadow atlas if changed + + int shadowmap_size = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/size"); + int atlas_q0 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_0_subdiv"); + int atlas_q1 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_1_subdiv"); + int atlas_q2 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_2_subdiv"); + int atlas_q3 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_3_subdiv"); + + + viewport->set_shadow_atlas_size(shadowmap_size); + viewport->set_shadow_atlas_quadrant_subdiv(0,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q0)); + viewport->set_shadow_atlas_quadrant_subdiv(1,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q1)); + viewport->set_shadow_atlas_quadrant_subdiv(2,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q2)); + viewport->set_shadow_atlas_quadrant_subdiv(3,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q3)); + + //update msaa if changed + + int msaa_mode = GlobalConfig::get_singleton()->get("rendering/quality/msaa"); + viewport->set_msaa(Viewport::MSAA(msaa_mode)); + + bool hdr = GlobalConfig::get_singleton()->get("rendering/quality/hdr"); + viewport->set_hdr(hdr); + + } if (p_what==NOTIFICATION_ENTER_TREE) { surface->connect("draw",this,"_draw"); - surface->connect("input_event",this,"_sinput"); - surface->connect("mouse_enter",this,"_smouseenter"); + surface->connect("gui_input",this,"_sinput"); + surface->connect("mouse_entered",this,"_smouseenter"); preview_camera->set_icon(get_icon("Camera","EditorIcons")); _init_gizmo_instance(index); } @@ -1892,8 +1895,8 @@ void SpatialEditorViewport::_draw() { if (previewing) { - Size2 ss = Size2( Globals::get_singleton()->get("display/width"), Globals::get_singleton()->get("display/height") ); - float aspect = ss.get_aspect(); + Size2 ss = Size2( GlobalConfig::get_singleton()->get("display/width"), GlobalConfig::get_singleton()->get("display/height") ); + float aspect = ss.aspect(); Size2 s = get_size(); Rect2 draw_rect; @@ -2066,9 +2069,9 @@ void SpatialEditorViewport::_menu_option(int p_option) { bool current = view_menu->get_popup()->is_item_checked( idx ); current=!current; if (current) - camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) ); + camera->set_cull_mask( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) ); else - camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_GRID_LAYER) ); + camera->set_cull_mask( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_GRID_LAYER) ); view_menu->get_popup()->set_item_checked( idx, current ); } break; @@ -2094,7 +2097,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) { move_gizmo_instance[i]=VS::get_singleton()->instance_create(); VS::get_singleton()->instance_set_base(move_gizmo_instance[i],spatial_editor->get_move_gizmo(i)->get_rid()); VS::get_singleton()->instance_set_scenario(move_gizmo_instance[i],get_tree()->get_root()->get_world()->get_scenario()); - VS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,false); + VS::get_singleton()->instance_set_visible(move_gizmo_instance[i],false); //VS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true); VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF); VS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i],layer); @@ -2102,7 +2105,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) { rotate_gizmo_instance[i]=VS::get_singleton()->instance_create(); VS::get_singleton()->instance_set_base(rotate_gizmo_instance[i],spatial_editor->get_rotate_gizmo(i)->get_rid()); VS::get_singleton()->instance_set_scenario(rotate_gizmo_instance[i],get_tree()->get_root()->get_world()->get_scenario()); - VS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,false); + VS::get_singleton()->instance_set_visible(rotate_gizmo_instance[i],false); //VS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true); VS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF); VS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i],layer); @@ -2128,9 +2131,9 @@ void SpatialEditorViewport::_toggle_camera_preview(bool p_activate) { if (!p_activate) { - previewing->disconnect("exit_tree",this,"_preview_exited_scene"); + previewing->disconnect("tree_exited",this,"_preview_exited_scene"); previewing=NULL; - VS::get_singleton()->viewport_attach_camera( viewport->get_viewport(), camera->get_camera() ); //restore + VS::get_singleton()->viewport_attach_camera( viewport->get_viewport_rid(), camera->get_camera() ); //restore if (!preview) preview_camera->hide(); view_menu->show(); @@ -2139,8 +2142,8 @@ void SpatialEditorViewport::_toggle_camera_preview(bool p_activate) { } else { previewing=preview; - previewing->connect("exit_tree",this,"_preview_exited_scene"); - VS::get_singleton()->viewport_attach_camera( viewport->get_viewport(), preview->get_camera() ); //replace + previewing->connect("tree_exited",this,"_preview_exited_scene"); + VS::get_singleton()->viewport_attach_camera( viewport->get_viewport_rid(), preview->get_camera() ); //replace view_menu->hide(); surface->update(); @@ -2183,7 +2186,7 @@ void SpatialEditorViewport::set_can_preview(Camera* p_preview) { void SpatialEditorViewport::update_transform_gizmo_view() { - if (!is_visible()) + if (!is_visible_in_tree()) return; Transform xform = spatial_editor->get_gizmo_transform(); @@ -2200,7 +2203,7 @@ void SpatialEditorViewport::update_transform_gizmo_view() { if (dd==0) dd=0.0001; - float gsize = EditorSettings::get_singleton()->get("3d_editor/manipulator_gizmo_size"); + float gsize = EditorSettings::get_singleton()->get("editors/3d/manipulator_gizmo_size"); gizmo_scale=(gsize/Math::abs(dd)); Vector3 scale = Vector3(1,1,1) * gizmo_scale; @@ -2211,9 +2214,9 @@ void SpatialEditorViewport::update_transform_gizmo_view() { for(int i=0;i<3;i++) { VisualServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], xform ); - VisualServer::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,spatial_editor->is_gizmo_visible()&& (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_MOVE) ); + VisualServer::get_singleton()->instance_set_visible(move_gizmo_instance[i],spatial_editor->is_gizmo_visible()&& (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_MOVE) ); VisualServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], xform ); - VisualServer::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_ROTATE) ); + VisualServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i],spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_ROTATE) ); } } @@ -2244,8 +2247,8 @@ void SpatialEditorViewport::set_state(const Dictionary& p_state) { Node *pv = EditorNode::get_singleton()->get_edited_scene()->get_node(p_state["previewing"]); if (pv && pv->cast_to<Camera>()) { previewing=pv->cast_to<Camera>(); - previewing->connect("exit_tree",this,"_preview_exited_scene"); - VS::get_singleton()->viewport_attach_camera( viewport->get_viewport(), previewing->get_camera() ); //replace + previewing->connect("tree_exited",this,"_preview_exited_scene"); + VS::get_singleton()->viewport_attach_camera( viewport->get_viewport_rid(), previewing->get_camera() ); //replace view_menu->hide(); surface->update(); preview_camera->set_pressed(true); @@ -2274,15 +2277,15 @@ Dictionary SpatialEditorViewport::get_state() const { void SpatialEditorViewport::_bind_methods(){ - ObjectTypeDB::bind_method(_MD("_draw"),&SpatialEditorViewport::_draw); - ObjectTypeDB::bind_method(_MD("_smouseenter"),&SpatialEditorViewport::_smouseenter); - ObjectTypeDB::bind_method(_MD("_sinput"),&SpatialEditorViewport::_sinput); - ObjectTypeDB::bind_method(_MD("_menu_option"),&SpatialEditorViewport::_menu_option); - ObjectTypeDB::bind_method(_MD("_toggle_camera_preview"),&SpatialEditorViewport::_toggle_camera_preview); - ObjectTypeDB::bind_method(_MD("_preview_exited_scene"),&SpatialEditorViewport::_preview_exited_scene); - ObjectTypeDB::bind_method(_MD("update_transform_gizmo_view"),&SpatialEditorViewport::update_transform_gizmo_view); - ObjectTypeDB::bind_method(_MD("_selection_result_pressed"),&SpatialEditorViewport::_selection_result_pressed); - ObjectTypeDB::bind_method(_MD("_selection_menu_hide"),&SpatialEditorViewport::_selection_menu_hide); + ClassDB::bind_method(_MD("_draw"),&SpatialEditorViewport::_draw); + ClassDB::bind_method(_MD("_smouseenter"),&SpatialEditorViewport::_smouseenter); + ClassDB::bind_method(_MD("_sinput"),&SpatialEditorViewport::_sinput); + ClassDB::bind_method(_MD("_menu_option"),&SpatialEditorViewport::_menu_option); + ClassDB::bind_method(_MD("_toggle_camera_preview"),&SpatialEditorViewport::_toggle_camera_preview); + ClassDB::bind_method(_MD("_preview_exited_scene"),&SpatialEditorViewport::_preview_exited_scene); + ClassDB::bind_method(_MD("update_transform_gizmo_view"),&SpatialEditorViewport::update_transform_gizmo_view); + ClassDB::bind_method(_MD("_selection_result_pressed"),&SpatialEditorViewport::_selection_result_pressed); + ClassDB::bind_method(_MD("_selection_menu_hide"),&SpatialEditorViewport::_selection_menu_hide); ADD_SIGNAL( MethodInfo("toggle_maximize_view", PropertyInfo(Variant::OBJECT, "viewport")) ); } @@ -2294,10 +2297,10 @@ void SpatialEditorViewport::reset() { message_time=0; message=""; last_message=""; - name=TTR("Top"); + name=""; - cursor.x_rot=0; - cursor.y_rot=0; + cursor.x_rot=0.5; + cursor.y_rot=0.5; cursor.distance=4; cursor.region_select=false; _update_name(); @@ -2347,7 +2350,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed index=p_index; editor=p_editor; - editor_selection=editor->get_editor_selection();; + editor_selection=editor->get_editor_selection(); undo_redo=editor->get_undo_redo(); clicked=0; clicked_includes_current=false; @@ -2355,18 +2358,20 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed message_time=0; spatial_editor=p_spatial_editor; - Control *c=memnew(Control); + ViewportContainer *c=memnew(ViewportContainer); + c->set_stretch(true); add_child(c); c->set_area_as_parent_rect(); viewport = memnew( Viewport ); viewport->set_disable_input(true); + c->add_child(viewport); surface = memnew( Control ); add_child(surface); surface->set_area_as_parent_rect(); camera = memnew(Camera); camera->set_disable_gizmo(true); - camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+p_index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) ); + camera->set_cull_mask( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+p_index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) ); //camera->set_environment(SpatialEditor::get_singleton()->get_viewport_environment()); viewport->add_child(camera); camera->make_current(); @@ -2375,7 +2380,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed view_menu = memnew( MenuButton ); surface->add_child(view_menu); view_menu->set_pos( Point2(4,4)); - view_menu->set_self_opacity(0.5); + view_menu->set_self_modulate(Color(1,1,1,0.5)); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/top_view"), VIEW_TOP); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/bottom_view"), VIEW_BOTTOM); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/left_view"), VIEW_LEFT); @@ -2399,7 +2404,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/focus_origin"), VIEW_CENTER_TO_ORIGIN); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/focus_selection"), VIEW_CENTER_TO_SELECTION); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/align_selection_with_view"), VIEW_ALIGN_SELECTION_WITH_VIEW); - view_menu->get_popup()->connect("item_pressed",this,"_menu_option"); + view_menu->get_popup()->connect("id_pressed",this,"_menu_option"); preview_camera = memnew( Button ); preview_camera->set_toggle_mode(true); @@ -2416,7 +2421,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed selection_menu = memnew( PopupMenu ); add_child(selection_menu); selection_menu->set_custom_minimum_size(Vector2(100, 0)); - selection_menu->connect("item_pressed", this, "_selection_result_pressed"); + selection_menu->connect("id_pressed", this, "_selection_result_pressed"); selection_menu->connect("popup_hide", this, "_selection_menu_hide"); if (p_index==0) { @@ -2462,10 +2467,10 @@ void SpatialEditor::select_gizmo_hilight_axis(int p_axis) { void SpatialEditor::update_transform_gizmo() { List<Node*> &selection = editor_selection->get_selected_node_list(); - AABB center; + Rect3 center; bool first=true; - Matrix3 gizmo_basis; + Basis gizmo_basis; bool local_gizmo_coords = transform_menu->get_popup()->is_item_checked( transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_LOCAL_COORDS) ); @@ -2489,9 +2494,9 @@ void SpatialEditor::update_transform_gizmo() { } } else { center.expand_to(xf.origin); - gizmo_basis=Matrix3(); + gizmo_basis=Basis(); } -// count++; + //count++; } Vector3 pcenter = center.pos+center.size*0.5; @@ -2527,7 +2532,7 @@ Object *SpatialEditor::_get_editor_data(Object *p_what) { void SpatialEditor::_generate_selection_box() { - AABB aabb( Vector3(), Vector3(1,1,1) ); + Rect3 aabb( Vector3(), Vector3(1,1,1) ); aabb.grow_by( aabb.get_longest_axis_size()/20.0 ); Ref<SurfaceTool> st = memnew( SurfaceTool ); @@ -2555,11 +2560,12 @@ void SpatialEditor::_generate_selection_box() { } - Ref<FixedMaterial> mat = memnew( FixedMaterial ); - mat->set_flag(Material::FLAG_UNSHADED,true); - mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1)); - mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true); - mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true); + Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial ); + mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true); + mat->set_albedo(Color(1,1,1)); + mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT,true); + mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR,true); + mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR,true); st->set_material(mat); selection_box = st->commit(); } @@ -2600,12 +2606,12 @@ Dictionary SpatialEditor::get_state() const { d["viewports"]=vpdata; - d["default_light"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_LIGHT) );; - d["ambient_light_color"]=settings_ambient_color->get_color(); + d["default_light"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_LIGHT) ); + d["ambient_light_color"]=settings_ambient_color->get_pick_color(); - d["default_srgb"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB) );; - d["show_grid"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID) );; - d["show_origin"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN) );; + d["default_srgb"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB) ); + d["show_grid"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID) ); + d["show_origin"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN) ); d["fov"]=get_fov(); d["znear"]=get_znear(); d["zfar"]=get_zfar(); @@ -2666,11 +2672,11 @@ void SpatialEditor::set_state(const Dictionary& p_state) { } if (d.has("zfar")) - settings_zfar->set_val(float(d["zfar"])); + settings_zfar->set_value(float(d["zfar"])); if (d.has("znear")) - settings_znear->set_val(float(d["znear"])); + settings_znear->set_value(float(d["znear"])); if (d.has("fov")) - settings_fov->set_val(float(d["fov"])); + settings_fov->set_value(float(d["fov"])); if (d.has("default_light")) { bool use = d["default_light"]; @@ -2690,15 +2696,15 @@ void SpatialEditor::set_state(const Dictionary& p_state) { } if (d.has("ambient_light_color")) { - settings_ambient_color->set_color(d["ambient_light_color"]); - viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,d["ambient_light_color"]); + settings_ambient_color->set_pick_color(d["ambient_light_color"]); + //viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,d["ambient_light_color"]); } if (d.has("default_srgb")) { bool use = d["default_srgb"]; - viewport_environment->set_enable_fx(Environment::FX_SRGB,use); - view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB), use ); + //viewport_environment->set_enable_fx(Environment::FX_SRGB,use); + //view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB), use ); } if (d.has("show_grid")) { bool use = d["show_grid"]; @@ -2713,7 +2719,7 @@ void SpatialEditor::set_state(const Dictionary& p_state) { if (use!=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN))) { view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), use ); - VisualServer::get_singleton()->instance_geometry_set_flag(origin_instance,VS::INSTANCE_FLAG_VISIBLE,use); + VisualServer::get_singleton()->instance_set_visible(origin_instance,use); } } @@ -2753,16 +2759,16 @@ void SpatialEditor::edit(Spatial *p_spatial) { } } + /* if (p_spatial) { - //_validate_selection(); - //if (selected.has(p_spatial->get_instance_ID()) && selected.size()==1) - // return; - //_select(p_spatial->get_instance_ID(),false,true); + _validate_selection(); + if (selected.has(p_spatial->get_instance_ID()) && selected.size()==1) + return; + _select(p_spatial->get_instance_ID(),false,true); // should become the selection } - - + */ } void SpatialEditor::_xform_dialog_action() { @@ -2778,21 +2784,10 @@ void SpatialEditor::_xform_dialog_action() { rotate[i]=Math::deg2rad(xform_rotate[i]->get_text().to_double()); scale[i]=xform_scale[i]->get_text().to_double(); } - + + t.basis.scale(scale); + t.basis.rotate(rotate); t.origin=translate; - for(int i=0;i<3;i++) { - if (!rotate[i]) - continue; - Vector3 axis; - axis[i]=1.0; - t.basis.rotate(axis,rotate[i]); - } - - for(int i=0;i<3;i++) { - if (scale[i]==1) - continue; - t.basis.set_axis(i,t.basis.get_axis(i)*scale[i]); - } undo_redo->create_action(TTR("XForm Dialog")); @@ -2840,8 +2835,8 @@ void SpatialEditor::_menu_item_pressed(int p_option) { tool_button[i]->set_pressed(i==p_option); tool_mode=(ToolMode)p_option; - // static const char *_mode[]={"Selection Mode.","Translation Mode.","Rotation Mode.","Scale Mode.","List Selection Mode."}; -// set_message(_mode[p_option],3); + //static const char *_mode[]={"Selection Mode.","Translation Mode.","Rotation Mode.","Scale Mode.","List Selection Mode."}; + //set_message(_mode[p_option],3); update_transform_gizmo(); } break; @@ -2898,9 +2893,9 @@ void SpatialEditor::_menu_item_pressed(int p_option) { bool is_checked = view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(p_option) ); if (is_checked) { - viewport_environment->set_enable_fx(Environment::FX_SRGB,false); + //viewport_environment->set_enable_fx(Environment::FX_SRGB,false); } else { - viewport_environment->set_enable_fx(Environment::FX_SRGB,true); + //viewport_environment->set_enable_fx(Environment::FX_SRGB,true); } is_checked = ! is_checked; @@ -2938,9 +2933,9 @@ void SpatialEditor::_menu_item_pressed(int p_option) { } viewports[0]->set_area_as_parent_rect(); - viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); + //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); viewports[2]->set_area_as_parent_rect(); - viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false ); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), true ); @@ -2962,9 +2957,9 @@ void SpatialEditor::_menu_item_pressed(int p_option) { } viewports[0]->set_area_as_parent_rect(); - viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); + //viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); viewports[2]->set_area_as_parent_rect(); - viewports[2]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false ); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false ); @@ -2984,13 +2979,13 @@ void SpatialEditor::_menu_item_pressed(int p_option) { viewports[i]->show(); } viewports[0]->set_area_as_parent_rect(); - viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); + //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); viewports[2]->set_area_as_parent_rect(); - viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); - viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); viewports[3]->set_area_as_parent_rect(); - viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); - viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); + //viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); + //viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false ); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false ); @@ -3010,13 +3005,13 @@ void SpatialEditor::_menu_item_pressed(int p_option) { viewports[i]->show(); } viewports[0]->set_area_as_parent_rect(); - viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); - viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); + //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); + //viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); viewports[2]->set_area_as_parent_rect(); - viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); - viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); viewports[3]->set_area_as_parent_rect(); - viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); + //viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false ); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false ); @@ -3033,17 +3028,17 @@ void SpatialEditor::_menu_item_pressed(int p_option) { viewports[i]->show(); } viewports[0]->set_area_as_parent_rect(); - viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); - viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); + //viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); + //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); viewports[1]->set_area_as_parent_rect(); - viewports[1]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); - viewports[1]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); + //viewports[1]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); + //viewports[1]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5); viewports[2]->set_area_as_parent_rect(); - viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); - viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5); + //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); viewports[3]->set_area_as_parent_rect(); - viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); - viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); + //viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5); + //viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false ); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false ); @@ -3096,7 +3091,7 @@ void SpatialEditor::_menu_item_pressed(int p_option) { bool is_checked = view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(p_option) ); is_checked=!is_checked; - VisualServer::get_singleton()->instance_geometry_set_flag(origin_instance,VS::INSTANCE_FLAG_VISIBLE,is_checked); + VisualServer::get_singleton()->instance_set_visible(origin_instance,is_checked); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(p_option), is_checked); } break; @@ -3108,7 +3103,7 @@ void SpatialEditor::_menu_item_pressed(int p_option) { for(int i=0;i<3;++i) { if (grid_enable[i]) { - VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[i],VS::INSTANCE_FLAG_VISIBLE,grid_enabled); + VisualServer::get_singleton()->instance_set_visible(grid_instance[i],grid_enabled); grid_visible[i]=grid_enabled; } } @@ -3135,7 +3130,7 @@ void SpatialEditor::_init_indicators() { - light_transform.rotate(Vector3(1,0,0),Math_PI/5.0); + light_transform.rotate(Vector3(1,0,0),-Math_PI/5.0); VisualServer::get_singleton()->instance_set_transform(light_instance,light_transform); @@ -3146,18 +3141,20 @@ void SpatialEditor::_init_indicators() { { - indicator_mat = VisualServer::get_singleton()->fixed_material_create(); - VisualServer::get_singleton()->material_set_flag( indicator_mat, VisualServer::MATERIAL_FLAG_UNSHADED, true ); - VisualServer::get_singleton()->material_set_flag( indicator_mat, VisualServer::MATERIAL_FLAG_ONTOP, false ); - VisualServer::get_singleton()->fixed_material_set_flag(indicator_mat, VisualServer::FIXED_MATERIAL_FLAG_USE_ALPHA,true); - VisualServer::get_singleton()->fixed_material_set_flag(indicator_mat, VisualServer::FIXED_MATERIAL_FLAG_USE_COLOR_ARRAY,true); + indicator_mat.instance(); + indicator_mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true); + indicator_mat->set_flag(FixedSpatialMaterial::FLAG_ONTOP,true); + indicator_mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR,true); + indicator_mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR,true); - DVector<Color> grid_colors[3]; - DVector<Vector3> grid_points[3]; + indicator_mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT,true); + + PoolVector<Color> grid_colors[3]; + PoolVector<Vector3> grid_points[3]; Vector<Color> origin_colors; Vector<Vector3> origin_points; - Color grid_color = EditorSettings::get_singleton()->get("3d_editor/grid_color"); + Color grid_color = EditorSettings::get_singleton()->get("editors/3d/grid_color"); for(int i=0;i<3;i++) { Vector3 axis; @@ -3192,13 +3189,13 @@ void SpatialEditor::_init_indicators() { d.resize(VS::ARRAY_MAX); d[VisualServer::ARRAY_VERTEX]=grid_points[i]; d[VisualServer::ARRAY_COLOR]=grid_colors[i]; - VisualServer::get_singleton()->mesh_add_surface(grid[i],VisualServer::PRIMITIVE_LINES,d); - VisualServer::get_singleton()->mesh_surface_set_material(grid[i],0,indicator_mat); + VisualServer::get_singleton()->mesh_add_surface_from_arrays(grid[i],VisualServer::PRIMITIVE_LINES,d); + VisualServer::get_singleton()->mesh_surface_set_material(grid[i],0,indicator_mat->get_rid()); grid_instance[i] = VisualServer::get_singleton()->instance_create2(grid[i],get_tree()->get_root()->get_world()->get_scenario()); grid_visible[i]=false; grid_enable[i]=false; - VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[i],VS::INSTANCE_FLAG_VISIBLE,false); + VisualServer::get_singleton()->instance_set_visible(grid_instance[i],false); VisualServer::get_singleton()->instance_geometry_set_cast_shadows_setting(grid_instance[i], VS::SHADOW_CASTING_SETTING_OFF); VS::get_singleton()->instance_set_layer_mask(grid_instance[i], 1 << SpatialEditorViewport::GIZMO_GRID_LAYER); @@ -3211,13 +3208,13 @@ void SpatialEditor::_init_indicators() { d[VisualServer::ARRAY_VERTEX]=origin_points; d[VisualServer::ARRAY_COLOR]=origin_colors; - VisualServer::get_singleton()->mesh_add_surface(origin,VisualServer::PRIMITIVE_LINES,d); - VisualServer::get_singleton()->mesh_surface_set_material(origin,0,indicator_mat); + VisualServer::get_singleton()->mesh_add_surface_from_arrays(origin,VisualServer::PRIMITIVE_LINES,d); + VisualServer::get_singleton()->mesh_surface_set_material(origin,0,indicator_mat->get_rid()); -// origin = VisualServer::get_singleton()->poly_create(); -// VisualServer::get_singleton()->poly_add_primitive(origin,origin_points,Vector<Vector3>(),origin_colors,Vector<Vector3>()); -// VisualServer::get_singleton()->poly_set_material(origin,indicator_mat,true); + //origin = VisualServer::get_singleton()->poly_create(); + //VisualServer::get_singleton()->poly_add_primitive(origin,origin_points,Vector<Vector3>(),origin_colors,Vector<Vector3>()); + //VisualServer::get_singleton()->poly_set_material(origin,indicator_mat,true); origin_instance = VisualServer::get_singleton()->instance_create2(origin,get_tree()->get_root()->get_world()->get_scenario()); VS::get_singleton()->instance_set_layer_mask(origin_instance,1<<SpatialEditorViewport::GIZMO_GRID_LAYER); @@ -3225,7 +3222,7 @@ void SpatialEditor::_init_indicators() { - VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[1],VS::INSTANCE_FLAG_VISIBLE,true); + VisualServer::get_singleton()->instance_set_visible(grid_instance[1],true); grid_enable[1]=true; grid_visible[1]=true; grid_enabled=true; @@ -3235,7 +3232,7 @@ void SpatialEditor::_init_indicators() { { cursor_mesh = VisualServer::get_singleton()->mesh_create(); - DVector<Vector3> cursor_points; + PoolVector<Vector3> cursor_points; float cs = 0.25; cursor_points.push_back(Vector3(+cs,0,0)); cursor_points.push_back(Vector3(-cs,0,0)); @@ -3243,17 +3240,15 @@ void SpatialEditor::_init_indicators() { cursor_points.push_back(Vector3(0,-cs,0)); cursor_points.push_back(Vector3(0,0,+cs)); cursor_points.push_back(Vector3(0,0,-cs)); - cursor_material=VisualServer::get_singleton()->fixed_material_create(); - VisualServer::get_singleton()->fixed_material_set_param(cursor_material,VS::FIXED_MATERIAL_PARAM_DIFFUSE,Color(0,1,1)); - VisualServer::get_singleton()->material_set_flag( cursor_material, VisualServer::MATERIAL_FLAG_UNSHADED, true ); - VisualServer::get_singleton()->fixed_material_set_flag(cursor_material, VisualServer::FIXED_MATERIAL_FLAG_USE_ALPHA,true); - VisualServer::get_singleton()->fixed_material_set_flag(cursor_material, VisualServer::FIXED_MATERIAL_FLAG_USE_COLOR_ARRAY,true); + cursor_material.instance(); + cursor_material->set_albedo(Color(0,1,1)); + cursor_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true); Array d; d.resize(VS::ARRAY_MAX); d[VS::ARRAY_VERTEX]=cursor_points; - VisualServer::get_singleton()->mesh_add_surface(cursor_mesh,VS::PRIMITIVE_LINES,d); - VisualServer::get_singleton()->mesh_surface_set_material(cursor_mesh,0,cursor_material); + VisualServer::get_singleton()->mesh_add_surface_from_arrays(cursor_mesh,VS::PRIMITIVE_LINES,d); + VisualServer::get_singleton()->mesh_surface_set_material(cursor_mesh,0,cursor_material->get_rid()); cursor_instance = VisualServer::get_singleton()->instance_create2(cursor_mesh,get_tree()->get_root()->get_world()->get_scenario()); VS::get_singleton()->instance_set_layer_mask(cursor_instance,1<<SpatialEditorViewport::GIZMO_GRID_LAYER); @@ -3269,13 +3264,13 @@ void SpatialEditor::_init_indicators() { //move gizmo - float gizmo_alph = EditorSettings::get_singleton()->get("3d_editor/manipulator_gizmo_opacity"); + float gizmo_alph = EditorSettings::get_singleton()->get("editors/3d/manipulator_gizmo_opacity"); - gizmo_hl = Ref<FixedMaterial>( memnew( FixedMaterial ) ); - gizmo_hl->set_flag(Material::FLAG_UNSHADED, true); - gizmo_hl->set_flag(Material::FLAG_ONTOP, true); - gizmo_hl->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - gizmo_hl->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,gizmo_alph+0.2f)); + gizmo_hl = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ) ); + gizmo_hl->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + gizmo_hl->set_flag(FixedSpatialMaterial::FLAG_ONTOP, true); + gizmo_hl->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + gizmo_hl->set_albedo(Color(1,1,1,gizmo_alph+0.2f)); for(int i=0;i<3;i++) { @@ -3283,14 +3278,14 @@ void SpatialEditor::_init_indicators() { rotate_gizmo[i]=Ref<Mesh>( memnew( Mesh ) ); - Ref<FixedMaterial> mat = memnew( FixedMaterial ); - mat->set_flag(Material::FLAG_UNSHADED, true); - mat->set_flag(Material::FLAG_ONTOP, true); - mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); + Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial ); + mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + mat->set_flag(FixedSpatialMaterial::FLAG_ONTOP, true); + mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); Color col; col[i]=1.0; col.a= gizmo_alph; - mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,col); + mat->set_albedo(col); gizmo_color[i]=mat; @@ -3329,8 +3324,8 @@ void SpatialEditor::_init_indicators() { for(int k = 0; k < 7 ; k++) { - Matrix3 ma(ivec,Math_PI*2*float(k)/arrow_sides); - Matrix3 mb(ivec,Math_PI*2*float(k+1)/arrow_sides); + Basis ma(ivec,Math_PI*2*float(k)/arrow_sides); + Basis mb(ivec,Math_PI*2*float(k+1)/arrow_sides); for(int j=0;j<arrow_points-1;j++) { @@ -3374,8 +3369,8 @@ void SpatialEditor::_init_indicators() { for(int k = 0; k < 33 ; k++) { - Matrix3 ma(ivec,Math_PI*2*float(k)/32); - Matrix3 mb(ivec,Math_PI*2*float(k+1)/32); + Basis ma(ivec,Math_PI*2*float(k)/32); + Basis mb(ivec,Math_PI*2*float(k+1)/32); for(int j=0;j<4;j++) { @@ -3436,15 +3431,13 @@ void SpatialEditor::_finish_indicators() { VisualServer::get_singleton()->free(cursor_instance); VisualServer::get_singleton()->free(cursor_mesh); - VisualServer::get_singleton()->free(indicator_mat); - VisualServer::get_singleton()->free(cursor_material); } void SpatialEditor::_instance_scene() { #if 0 EditorNode *en = get_scene()->get_root_node()->cast_to<EditorNode>(); ERR_FAIL_COND(!en); - String path = en->get_scenes_dock()->get_selected_path(); + String path = en->get_filesystem_dock()->get_selected_path(); if (path=="") { set_message(TTR("No scene selected to instance!")); return; @@ -3472,7 +3465,7 @@ void SpatialEditor::_instance_scene() { void SpatialEditor::_unhandled_key_input(InputEvent p_event) { - if (!is_visible() || get_viewport()->gui_has_modal_stack()) + if (!is_visible_in_tree() || get_viewport()->gui_has_modal_stack()) return; #if 0 @@ -3482,7 +3475,7 @@ void SpatialEditor::_unhandled_key_input(InputEvent p_event) { EditorNode *en = editor; EditorPluginList *over_plugin_list = en->get_editor_plugins_over(); - if (!over_plugin_list->empty() && over_plugin_list->forward_input_event(p_event)) { + if (!over_plugin_list->empty() && over_plugin_list->forward_gui_input(p_event)) { return; //ate the over input event } @@ -3679,17 +3672,17 @@ void SpatialEditor::_node_removed(Node* p_node) { void SpatialEditor::_bind_methods() { -// ObjectTypeDB::bind_method("_input_event",&SpatialEditor::_input_event); - ObjectTypeDB::bind_method("_unhandled_key_input",&SpatialEditor::_unhandled_key_input); - ObjectTypeDB::bind_method("_node_removed",&SpatialEditor::_node_removed); - ObjectTypeDB::bind_method("_menu_item_pressed",&SpatialEditor::_menu_item_pressed); - ObjectTypeDB::bind_method("_xform_dialog_action",&SpatialEditor::_xform_dialog_action); - ObjectTypeDB::bind_method("_instance_scene",&SpatialEditor::_instance_scene); - ObjectTypeDB::bind_method("_get_editor_data",&SpatialEditor::_get_editor_data); - ObjectTypeDB::bind_method("_request_gizmo",&SpatialEditor::_request_gizmo); - ObjectTypeDB::bind_method("_default_light_angle_input",&SpatialEditor::_default_light_angle_input); - ObjectTypeDB::bind_method("_update_ambient_light_color",&SpatialEditor::_update_ambient_light_color); - ObjectTypeDB::bind_method("_toggle_maximize_view",&SpatialEditor::_toggle_maximize_view); + //ClassDB::bind_method("_gui_input",&SpatialEditor::_gui_input); + ClassDB::bind_method("_unhandled_key_input",&SpatialEditor::_unhandled_key_input); + ClassDB::bind_method("_node_removed",&SpatialEditor::_node_removed); + ClassDB::bind_method("_menu_item_pressed",&SpatialEditor::_menu_item_pressed); + ClassDB::bind_method("_xform_dialog_action",&SpatialEditor::_xform_dialog_action); + ClassDB::bind_method("_instance_scene",&SpatialEditor::_instance_scene); + ClassDB::bind_method("_get_editor_data",&SpatialEditor::_get_editor_data); + ClassDB::bind_method("_request_gizmo",&SpatialEditor::_request_gizmo); + ClassDB::bind_method("_default_light_angle_input",&SpatialEditor::_default_light_angle_input); + ClassDB::bind_method("_update_ambient_light_color",&SpatialEditor::_update_ambient_light_color); + ClassDB::bind_method("_toggle_maximize_view",&SpatialEditor::_toggle_maximize_view); ADD_SIGNAL( MethodInfo("transform_key_request") ); @@ -3698,9 +3691,9 @@ void SpatialEditor::_bind_methods() { void SpatialEditor::clear() { - settings_fov->set_val(EDITOR_DEF("3d_editor/default_fov",60.0)); - settings_znear->set_val(EDITOR_DEF("3d_editor/default_z_near",0.1)); - settings_zfar->set_val(EDITOR_DEF("3d_editor/default_z_far",1500.0)); + settings_fov->set_value(EDITOR_DEF("editors/3d/default_fov",60.0)); + settings_znear->set_value(EDITOR_DEF("editors/3d/default_z_near",0.1)); + settings_zfar->set_value(EDITOR_DEF("editors/3d/default_z_far",1500.0)); for(int i=0;i<4;i++) { viewports[i]->reset(); @@ -3710,11 +3703,11 @@ void SpatialEditor::clear() { _menu_item_pressed(MENU_VIEW_DISPLAY_NORMAL); - VisualServer::get_singleton()->instance_geometry_set_flag(origin_instance,VS::INSTANCE_FLAG_VISIBLE,true); + VisualServer::get_singleton()->instance_set_visible(origin_instance,true); view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), true); for(int i=0;i<3;++i) { if (grid_enable[i]) { - VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[i],VS::INSTANCE_FLAG_VISIBLE,true); + VisualServer::get_singleton()->instance_set_visible(grid_instance[i],true); grid_visible[i]=true; } } @@ -3730,8 +3723,8 @@ void SpatialEditor::clear() { settings_default_light_rot_x=Math_PI*0.3; settings_default_light_rot_y=Math_PI*0.2; - viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15)); - settings_ambient_color->set_color(Color(0.15,0.15,0.15)); + //viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15)); + settings_ambient_color->set_pick_color(Color(0.15,0.15,0.15)); if (!light_instance.is_valid()) _menu_item_pressed(MENU_VIEW_USE_DEFAULT_LIGHT); @@ -3743,15 +3736,15 @@ void SpatialEditor::clear() { void SpatialEditor::_update_ambient_light_color(const Color& p_color) { - viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,settings_ambient_color->get_color()); + //viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,settings_ambient_color->get_color()); } void SpatialEditor::_update_default_light_angle() { Transform t; - t.basis.rotate(Vector3(1,0,0),settings_default_light_rot_x); - t.basis.rotate(Vector3(0,1,0),settings_default_light_rot_y); + t.basis.rotate(Vector3(1,0,0),-settings_default_light_rot_x); + t.basis.rotate(Vector3(0,1,0),-settings_default_light_rot_y); settings_dlight->set_transform(t); if (light_instance.is_valid()) { VS::get_singleton()->instance_set_transform(light_instance,t); @@ -3884,7 +3877,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { p->add_separator(); p->add_shortcut(ED_SHORTCUT("spatial_editor/transform_dialog", TTR("Transform Dialog..")), MENU_TRANSFORM_DIALOG); - p->connect("item_pressed", this,"_menu_item_pressed"); + p->connect("id_pressed", this,"_menu_item_pressed"); view_menu = memnew( MenuButton ); view_menu->set_text(TTR("View")); @@ -3922,7 +3915,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { p->set_item_checked( p->get_item_index(MENU_VIEW_GRID), true ); - p->connect("item_pressed", this,"_menu_item_pressed"); + p->connect("id_pressed", this,"_menu_item_pressed"); /* REST OF MENU */ @@ -3956,7 +3949,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { VBoxContainer *snap_dialog_vbc = memnew( VBoxContainer ); snap_dialog->add_child(snap_dialog_vbc); - snap_dialog->set_child_rect(snap_dialog_vbc); + //snap_dialog->set_child_rect(snap_dialog_vbc); snap_translate = memnew( LineEdit ); snap_translate->set_text("1"); @@ -3978,13 +3971,13 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { settings_vbc = memnew( VBoxContainer ); settings_vbc->set_custom_minimum_size(Size2(200,0)); settings_dialog->add_child(settings_vbc); - settings_dialog->set_child_rect(settings_vbc); + //settings_dialog->set_child_rect(settings_vbc); - settings_light_base = memnew( Control ); + settings_light_base = memnew( ViewportContainer ); settings_light_base->set_custom_minimum_size(Size2(128,128)); - settings_light_base->connect("input_event",this,"_default_light_angle_input"); + settings_light_base->connect("gui_input",this,"_default_light_angle_input"); settings_vbc->add_margin_child(TTR("Default Light Normal:"),settings_light_base); settings_light_vp = memnew( Viewport ); settings_light_vp->set_disable_input(true); @@ -4012,31 +4005,28 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { settings_ambient_color = memnew( ColorPickerButton ); settings_vbc->add_margin_child(TTR("Ambient Light Color:"),settings_ambient_color); settings_ambient_color->connect("color_changed",this,"_update_ambient_light_color"); - - viewport_environment->set_enable_fx(Environment::FX_AMBIENT_LIGHT,true); - viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15)); - settings_ambient_color->set_color(Color(0.15,0.15,0.15)); + settings_ambient_color->set_pick_color(Color(0.15,0.15,0.15)); settings_fov = memnew( SpinBox ); settings_fov->set_max(179); settings_fov->set_min(1); settings_fov->set_step(0.01); - settings_fov->set_val(EDITOR_DEF("3d_editor/default_fov",60.0)); + settings_fov->set_value(EDITOR_DEF("editors/3d/default_fov",60.0)); settings_vbc->add_margin_child(TTR("Perspective FOV (deg.):"),settings_fov); settings_znear = memnew( SpinBox ); settings_znear->set_max(10000); settings_znear->set_min(0.1); settings_znear->set_step(0.01); - settings_znear->set_val(EDITOR_DEF("3d_editor/default_z_near",0.1)); + settings_znear->set_value(EDITOR_DEF("editors/3d/default_z_near",0.1)); settings_vbc->add_margin_child(TTR("View Z-Near:"),settings_znear); settings_zfar = memnew( SpinBox ); settings_zfar->set_max(10000); settings_zfar->set_min(0.1); settings_zfar->set_step(0.01); - settings_zfar->set_val(EDITOR_DEF("3d_editor/default_z_far",1500)); + settings_zfar->set_value(EDITOR_DEF("editors/3d/default_z_far",1500)); settings_vbc->add_margin_child(TTR("View Z-Far:"),settings_zfar); //settings_dialog->get_cancel()->hide(); @@ -4104,9 +4094,9 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { set_process_unhandled_key_input(true); add_to_group("_spatial_editor_group"); - EDITOR_DEF("3d_editor/manipulator_gizmo_size",80); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT,"3d_editor/manipulator_gizmo_size",PROPERTY_HINT_RANGE,"16,1024,1")); - EDITOR_DEF("3d_editor/manipulator_gizmo_opacity",0.2); + EDITOR_DEF("editors/3d/manipulator_gizmo_size",80); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT,"editors/3d/manipulator_gizmo_size",PROPERTY_HINT_RANGE,"16,1024,1")); + EDITOR_DEF("editors/3d/manipulator_gizmo_opacity",0.2); over_gizmo_handle=-1; } @@ -4145,7 +4135,7 @@ void SpatialEditorPlugin::edit(Object *p_object) { bool SpatialEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("Spatial"); + return p_object->is_class("Spatial"); } Dictionary SpatialEditorPlugin::get_state() const { @@ -4159,12 +4149,12 @@ void SpatialEditorPlugin::set_state(const Dictionary& p_state) { void SpatialEditor::snap_cursor_to_plane(const Plane& p_plane) { -// cursor.pos=p_plane.project(cursor.pos); + //cursor.pos=p_plane.project(cursor.pos); } void SpatialEditorPlugin::_bind_methods() { - ObjectTypeDB::bind_method("snap_cursor_to_plane",&SpatialEditorPlugin::snap_cursor_to_plane); + ClassDB::bind_method("snap_cursor_to_plane",&SpatialEditorPlugin::snap_cursor_to_plane); } diff --git a/tools/editor/plugins/spatial_editor_plugin.h b/tools/editor/plugins/spatial_editor_plugin.h index 89587526ee..36f807c11f 100644 --- a/tools/editor/plugins/spatial_editor_plugin.h +++ b/tools/editor/plugins/spatial_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -45,7 +45,7 @@ class SpatialEditorGizmos; class SpatialEditorGizmo : public SpatialGizmo { - OBJ_TYPE(SpatialEditorGizmo,SpatialGizmo); + GDCLASS(SpatialEditorGizmo,SpatialGizmo); bool selected; public: @@ -66,7 +66,7 @@ public: class SpatialEditorViewport : public Control { - OBJ_TYPE( SpatialEditorViewport, Control ); + GDCLASS( SpatialEditorViewport, Control ); friend class SpatialEditor; enum { @@ -156,13 +156,11 @@ private: NAVIGATION_MAYA, NAVIGATION_MODO, }; - NavigationScheme _get_navigation_schema(const String& p_property); enum NavigationZoomStyle { NAVIGATION_ZOOM_VERTICAL, NAVIGATION_ZOOM_HORIZONTAL }; - NavigationZoomStyle _get_navigation_zoom_style(const String& p_property); enum NavigationMode { NAVIGATION_NONE, @@ -210,7 +208,7 @@ private: bool region_select; Point2 region_begin,region_end; - Cursor() { x_rot=y_rot=0; distance=4; region_select=false; } + Cursor() { x_rot=y_rot=0.5; distance=4; region_select=false; } } cursor; RID move_gizmo_instance[3], rotate_gizmo_instance[3]; @@ -267,11 +265,11 @@ public: class SpatialEditorSelectedItem : public Object { - OBJ_TYPE(SpatialEditorSelectedItem,Object); + GDCLASS(SpatialEditorSelectedItem,Object); public: - AABB aabb; + Rect3 aabb; Transform original; // original location when moving Transform last_xform; // last transform Spatial *sp; @@ -283,7 +281,7 @@ public: class SpatialEditor : public VBoxContainer { - OBJ_TYPE(SpatialEditor, VBoxContainer ); + GDCLASS(SpatialEditor, VBoxContainer ); public: enum ToolMode { @@ -332,8 +330,8 @@ private: bool grid_enabled; Ref<Mesh> move_gizmo[3], rotate_gizmo[3]; - Ref<FixedMaterial> gizmo_color[3]; - Ref<FixedMaterial> gizmo_hl; + Ref<FixedSpatialMaterial> gizmo_color[3]; + Ref<FixedSpatialMaterial> gizmo_hl; int over_gizmo_handle; @@ -345,8 +343,8 @@ private: RID indicators_instance; RID cursor_mesh; RID cursor_instance; - RID indicator_mat; - RID cursor_material; + Ref<FixedSpatialMaterial> indicator_mat; + Ref<FixedSpatialMaterial> cursor_material; /* struct Selected { @@ -431,7 +429,7 @@ private: float settings_default_light_rot_x; float settings_default_light_rot_y; - Control *settings_light_base; + ViewportContainer *settings_light_base; Viewport *settings_light_vp; ColorPickerButton *settings_ambient_color; Image settings_light_dir_image; @@ -481,7 +479,7 @@ protected: void _notification(int p_what); - //void _input_event(InputEvent p_event); + //void _gui_input(InputEvent p_event); void _unhandled_key_input(InputEvent p_event); static void _bind_methods(); @@ -491,9 +489,9 @@ public: static SpatialEditor *get_singleton() { return singleton; } void snap_cursor_to_plane(const Plane& p_plane); - float get_znear() const { return settings_znear->get_val(); } - float get_zfar() const { return settings_zfar->get_val(); } - float get_fov() const { return settings_fov->get_val(); } + float get_znear() const { return settings_znear->get_value(); } + float get_zfar() const { return settings_zfar->get_value(); } + float get_fov() const { return settings_fov->get_value(); } Transform get_gizmo_transform() const { return gizmo.transform; } bool is_gizmo_visible() const { return gizmo.visible; } @@ -546,7 +544,7 @@ public: class SpatialEditorPlugin : public EditorPlugin { - OBJ_TYPE( SpatialEditorPlugin, EditorPlugin ); + GDCLASS( SpatialEditorPlugin, EditorPlugin ); SpatialEditor *spatial_editor; EditorNode *editor; diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.cpp b/tools/editor/plugins/sprite_frames_editor_plugin.cpp index 41beaa96a1..095b059836 100644 --- a/tools/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/tools/editor/plugins/sprite_frames_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,7 +35,7 @@ -void SpriteFramesEditor::_input_event(InputEvent p_event) { +void SpriteFramesEditor::_gui_input(InputEvent p_event) { } @@ -56,7 +56,7 @@ void SpriteFramesEditor::_notification(int p_what) { if (p_what==NOTIFICATION_READY) { -// NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true); + //NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true); } if (p_what==NOTIFICATION_DRAW) { @@ -64,7 +64,7 @@ void SpriteFramesEditor::_notification(int p_what) { } } -void SpriteFramesEditor::_file_load_request(const DVector<String>& p_path,int p_at_pos) { +void SpriteFramesEditor::_file_load_request(const PoolVector<String>& p_path,int p_at_pos) { ERR_FAIL_COND(!frames->has_animation(edited_anim)); @@ -605,7 +605,7 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) { tree->select(tree->get_item_count()-1); } - anim_speed->set_val(frames->get_animation_speed(edited_anim)); + anim_speed->set_value(frames->get_animation_speed(edited_anim)); anim_loop->set_pressed(frames->get_animation_loop(edited_anim)); updating=false; @@ -700,7 +700,7 @@ bool SpriteFramesEditor::can_drop_data_fw(const Point2& p_point,const Variant& p String file = files[0]; String ftype = EditorFileSystem::get_singleton()->get_file_type(file); - if (!ObjectTypeDB::is_type(ftype,"Texture")) { + if (!ClassDB::is_parent_class(ftype,"Texture")) { return false; } @@ -744,7 +744,7 @@ void SpriteFramesEditor::drop_data_fw(const Point2& p_point,const Variant& p_dat if (String(d["type"])=="files") { - DVector<String> files = d["files"]; + PoolVector<String> files = d["files"]; _file_load_request(files,at_pos); } @@ -754,27 +754,27 @@ void SpriteFramesEditor::drop_data_fw(const Point2& p_point,const Variant& p_dat void SpriteFramesEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&SpriteFramesEditor::_input_event); - ObjectTypeDB::bind_method(_MD("_load_pressed"),&SpriteFramesEditor::_load_pressed); - ObjectTypeDB::bind_method(_MD("_empty_pressed"),&SpriteFramesEditor::_empty_pressed); - ObjectTypeDB::bind_method(_MD("_empty2_pressed"),&SpriteFramesEditor::_empty2_pressed); - ObjectTypeDB::bind_method(_MD("_item_edited"),&SpriteFramesEditor::_item_edited); - ObjectTypeDB::bind_method(_MD("_delete_pressed"),&SpriteFramesEditor::_delete_pressed); - ObjectTypeDB::bind_method(_MD("_paste_pressed"),&SpriteFramesEditor::_paste_pressed); - ObjectTypeDB::bind_method(_MD("_delete_confirm_pressed"),&SpriteFramesEditor::_delete_confirm_pressed); - ObjectTypeDB::bind_method(_MD("_file_load_request","files","atpos"),&SpriteFramesEditor::_file_load_request,DEFVAL(-1)); - ObjectTypeDB::bind_method(_MD("_update_library","skipsel"),&SpriteFramesEditor::_update_library,DEFVAL(false)); - ObjectTypeDB::bind_method(_MD("_up_pressed"),&SpriteFramesEditor::_up_pressed); - ObjectTypeDB::bind_method(_MD("_down_pressed"),&SpriteFramesEditor::_down_pressed); - ObjectTypeDB::bind_method(_MD("_animation_select"),&SpriteFramesEditor::_animation_select); - ObjectTypeDB::bind_method(_MD("_animation_name_edited"),&SpriteFramesEditor::_animation_name_edited); - ObjectTypeDB::bind_method(_MD("_animation_add"),&SpriteFramesEditor::_animation_add); - ObjectTypeDB::bind_method(_MD("_animation_remove"),&SpriteFramesEditor::_animation_remove); - ObjectTypeDB::bind_method(_MD("_animation_loop_changed"),&SpriteFramesEditor::_animation_loop_changed); - ObjectTypeDB::bind_method(_MD("_animation_fps_changed"),&SpriteFramesEditor::_animation_fps_changed); - ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &SpriteFramesEditor::get_drag_data_fw); - ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &SpriteFramesEditor::can_drop_data_fw); - ObjectTypeDB::bind_method(_MD("drop_data_fw"), &SpriteFramesEditor::drop_data_fw); + ClassDB::bind_method(_MD("_gui_input"),&SpriteFramesEditor::_gui_input); + ClassDB::bind_method(_MD("_load_pressed"),&SpriteFramesEditor::_load_pressed); + ClassDB::bind_method(_MD("_empty_pressed"),&SpriteFramesEditor::_empty_pressed); + ClassDB::bind_method(_MD("_empty2_pressed"),&SpriteFramesEditor::_empty2_pressed); + ClassDB::bind_method(_MD("_item_edited"),&SpriteFramesEditor::_item_edited); + ClassDB::bind_method(_MD("_delete_pressed"),&SpriteFramesEditor::_delete_pressed); + ClassDB::bind_method(_MD("_paste_pressed"),&SpriteFramesEditor::_paste_pressed); + ClassDB::bind_method(_MD("_delete_confirm_pressed"),&SpriteFramesEditor::_delete_confirm_pressed); + ClassDB::bind_method(_MD("_file_load_request","files","atpos"),&SpriteFramesEditor::_file_load_request,DEFVAL(-1)); + ClassDB::bind_method(_MD("_update_library","skipsel"),&SpriteFramesEditor::_update_library,DEFVAL(false)); + ClassDB::bind_method(_MD("_up_pressed"),&SpriteFramesEditor::_up_pressed); + ClassDB::bind_method(_MD("_down_pressed"),&SpriteFramesEditor::_down_pressed); + ClassDB::bind_method(_MD("_animation_select"),&SpriteFramesEditor::_animation_select); + ClassDB::bind_method(_MD("_animation_name_edited"),&SpriteFramesEditor::_animation_name_edited); + ClassDB::bind_method(_MD("_animation_add"),&SpriteFramesEditor::_animation_add); + ClassDB::bind_method(_MD("_animation_remove"),&SpriteFramesEditor::_animation_remove); + ClassDB::bind_method(_MD("_animation_loop_changed"),&SpriteFramesEditor::_animation_loop_changed); + ClassDB::bind_method(_MD("_animation_fps_changed"),&SpriteFramesEditor::_animation_fps_changed); + ClassDB::bind_method(_MD("get_drag_data_fw"), &SpriteFramesEditor::get_drag_data_fw); + ClassDB::bind_method(_MD("can_drop_data_fw"), &SpriteFramesEditor::can_drop_data_fw); + ClassDB::bind_method(_MD("drop_data_fw"), &SpriteFramesEditor::drop_data_fw); } @@ -929,7 +929,7 @@ void SpriteFramesEditorPlugin::edit(Object *p_object) { bool SpriteFramesEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("SpriteFrames"); + return p_object->is_class("SpriteFrames"); } void SpriteFramesEditorPlugin::make_visible(bool p_visible) { @@ -937,14 +937,14 @@ void SpriteFramesEditorPlugin::make_visible(bool p_visible) { if (p_visible) { button->show(); editor->make_bottom_panel_item_visible(frames_editor); -// frames_editor->set_process(true); + //frames_editor->set_process(true); } else { button->hide(); - if (frames_editor->is_visible()) + if (frames_editor->is_visible_in_tree()) editor->hide_bottom_panel(); -// frames_editor->set_process(false); + //frames_editor->set_process(false); } } diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.h b/tools/editor/plugins/sprite_frames_editor_plugin.h index f0aa84c23a..36a022b7e4 100644 --- a/tools/editor/plugins/sprite_frames_editor_plugin.h +++ b/tools/editor/plugins/sprite_frames_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -41,7 +41,7 @@ class SpriteFramesEditor : public PanelContainer { - OBJ_TYPE(SpriteFramesEditor, PanelContainer ); + GDCLASS(SpriteFramesEditor, PanelContainer ); Button *load; Button *_delete; @@ -73,7 +73,7 @@ class SpriteFramesEditor : public PanelContainer { void _load_pressed(); void _load_scene_pressed(); - void _file_load_request(const DVector<String>& p_path, int p_at_pos=-1); + void _file_load_request(const PoolVector<String>& p_path, int p_at_pos=-1); void _paste_pressed(); void _empty_pressed(); void _empty2_pressed(); @@ -104,7 +104,7 @@ class SpriteFramesEditor : public PanelContainer { protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -116,7 +116,7 @@ public: class SpriteFramesEditorPlugin : public EditorPlugin { - OBJ_TYPE( SpriteFramesEditorPlugin, EditorPlugin ); + GDCLASS( SpriteFramesEditorPlugin, EditorPlugin ); SpriteFramesEditor *frames_editor; EditorNode *editor; diff --git a/tools/editor/plugins/stream_editor_plugin.cpp b/tools/editor/plugins/stream_editor_plugin.cpp index d896784074..991c29b6db 100644 --- a/tools/editor/plugins/stream_editor_plugin.cpp +++ b/tools/editor/plugins/stream_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -28,7 +28,7 @@ /*************************************************************************/ #include "stream_editor_plugin.h" - +#if 0 void StreamEditor::_notification(int p_what) { @@ -59,8 +59,8 @@ void StreamEditor::_stop() { void StreamEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_play"),&StreamEditor::_play); - ObjectTypeDB::bind_method(_MD("_stop"),&StreamEditor::_stop); + ClassDB::bind_method(_MD("_play"),&StreamEditor::_play); + ClassDB::bind_method(_MD("_stop"),&StreamEditor::_stop); } @@ -104,7 +104,7 @@ void StreamEditorPlugin::edit(Object *p_object) { bool StreamEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("StreamPlayer") || p_object->is_type("SpatialStreamPlayer"); + return p_object->is_class("StreamPlayer") || p_object->is_class("SpatialStreamPlayer"); } void StreamEditorPlugin::make_visible(bool p_visible) { @@ -146,3 +146,4 @@ StreamEditorPlugin::~StreamEditorPlugin() { } +#endif diff --git a/tools/editor/plugins/stream_editor_plugin.h b/tools/editor/plugins/stream_editor_plugin.h index 5730612d61..cc853d4661 100644 --- a/tools/editor/plugins/stream_editor_plugin.h +++ b/tools/editor/plugins/stream_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,7 +29,7 @@ #ifndef STREAM_EDITOR_PLUGIN_H #define STREAM_EDITOR_PLUGIN_H - +#if 0 #include "tools/editor/editor_plugin.h" #include "tools/editor/editor_node.h" #include "scene/audio/stream_player.h" @@ -40,7 +40,7 @@ class StreamEditor : public Control { - OBJ_TYPE(StreamEditor, Control ); + GDCLASS(StreamEditor, Control ); Button * play; Button * stop; @@ -62,7 +62,7 @@ public: class StreamEditorPlugin : public EditorPlugin { - OBJ_TYPE( StreamEditorPlugin, EditorPlugin ); + GDCLASS( StreamEditorPlugin, EditorPlugin ); StreamEditor *stream_editor; EditorNode *editor; @@ -81,3 +81,4 @@ public: }; #endif // STREAM_EDITOR_PLUGIN_H +#endif diff --git a/tools/editor/plugins/style_box_editor_plugin.cpp b/tools/editor/plugins/style_box_editor_plugin.cpp index d5c885bd55..396ebd0052 100644 --- a/tools/editor/plugins/style_box_editor_plugin.cpp +++ b/tools/editor/plugins/style_box_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -48,10 +48,10 @@ void StyleBoxEditor::_sb_changed() { void StyleBoxEditor::_bind_methods() { - ObjectTypeDB::bind_method("_sb_changed",&StyleBoxEditor::_sb_changed); -// ObjectTypeDB::bind_method("_import",&StyleBoxEditor::_import); -// ObjectTypeDB::bind_method("_import_accept",&StyleBoxEditor::_import_accept); -// ObjectTypeDB::bind_method("_preview_text_changed",&StyleBoxEditor::_preview_text_changed); + ClassDB::bind_method("_sb_changed",&StyleBoxEditor::_sb_changed); + //ClassDB::bind_method("_import",&StyleBoxEditor::_import); + //ClassDB::bind_method("_import_accept",&StyleBoxEditor::_import_accept); + //ClassDB::bind_method("_preview_text_changed",&StyleBoxEditor::_preview_text_changed); } StyleBoxEditor::StyleBoxEditor() { @@ -85,7 +85,7 @@ void StyleBoxEditorPlugin::edit(Object *p_node) { bool StyleBoxEditorPlugin::handles(Object *p_node) const{ - return p_node->is_type("StyleBox"); + return p_node->is_class("StyleBox"); } void StyleBoxEditorPlugin::make_visible(bool p_visible){ @@ -95,7 +95,7 @@ void StyleBoxEditorPlugin::make_visible(bool p_visible){ EditorNode::get_singleton()->make_bottom_panel_item_visible(stylebox_editor); } else { - if (stylebox_editor->is_visible()) + if (stylebox_editor->is_visible_in_tree()) EditorNode::get_singleton()->hide_bottom_panel(); button->hide(); } diff --git a/tools/editor/plugins/style_box_editor_plugin.h b/tools/editor/plugins/style_box_editor_plugin.h index 737f830bbb..29e98efd8b 100644 --- a/tools/editor/plugins/style_box_editor_plugin.h +++ b/tools/editor/plugins/style_box_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -30,14 +30,14 @@ #define STYLE_BOX_EDITOR_PLUGIN_H #include "scene/resources/style_box.h" -#include "scene/gui/texture_frame.h" +#include "scene/gui/texture_rect.h" #include "scene/gui/option_button.h" #include "tools/editor/editor_node.h" class StyleBoxEditor : public Control { - OBJ_TYPE( StyleBoxEditor, Control ); + GDCLASS( StyleBoxEditor, Control ); Panel *panel; Panel *preview; @@ -61,7 +61,7 @@ public: class StyleBoxEditorPlugin : public EditorPlugin { - OBJ_TYPE( StyleBoxEditorPlugin, EditorPlugin ); + GDCLASS( StyleBoxEditorPlugin, EditorPlugin ); StyleBoxEditor *stylebox_editor; EditorNode *editor; diff --git a/tools/editor/plugins/texture_editor_plugin.cpp b/tools/editor/plugins/texture_editor_plugin.cpp index 1305e91105..82cba7ac0e 100644 --- a/tools/editor/plugins/texture_editor_plugin.cpp +++ b/tools/editor/plugins/texture_editor_plugin.cpp @@ -1,10 +1,38 @@ +/*************************************************************************/ +/* texture_editor_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "texture_editor_plugin.h" #include "io/resource_loader.h" #include "globals.h" #include "tools/editor/editor_settings.h" -void TextureEditor::_input_event(InputEvent p_event) { +void TextureEditor::_gui_input(InputEvent p_event) { } @@ -49,7 +77,7 @@ void TextureEditor::_notification(int p_what) { if (texture->cast_to<ImageTexture>()) { format = Image::get_format_name(texture->cast_to<ImageTexture>()->get_format()); } else { - format=texture->get_type(); + format=texture->get_class(); } String text = itos(texture->get_width())+"x"+itos(texture->get_height())+" "+format; @@ -84,7 +112,7 @@ void TextureEditor::edit(Ref<Texture> p_texture) { void TextureEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_input_event"),&TextureEditor::_input_event); + ClassDB::bind_method(_MD("_gui_input"),&TextureEditor::_gui_input); } @@ -106,18 +134,18 @@ void TextureEditorPlugin::edit(Object *p_object) { bool TextureEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("Texture"); + return p_object->is_class("Texture"); } void TextureEditorPlugin::make_visible(bool p_visible) { if (p_visible) { texture_editor->show(); -// texture_editor->set_process(true); + //texture_editor->set_process(true); } else { texture_editor->hide(); -// texture_editor->set_process(false); + //texture_editor->set_process(false); } } diff --git a/tools/editor/plugins/texture_editor_plugin.h b/tools/editor/plugins/texture_editor_plugin.h index 5f58f4fcdb..456a5249de 100644 --- a/tools/editor/plugins/texture_editor_plugin.h +++ b/tools/editor/plugins/texture_editor_plugin.h @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* texture_editor_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef TEXTURE_EDITOR_PLUGIN_H #define TEXTURE_EDITOR_PLUGIN_H @@ -10,14 +38,14 @@ class TextureEditor : public Control { - OBJ_TYPE(TextureEditor, Control); + GDCLASS(TextureEditor, Control); Ref<Texture> texture; protected: void _notification(int p_what); - void _input_event(InputEvent p_event); + void _gui_input(InputEvent p_event); static void _bind_methods(); public: @@ -28,7 +56,7 @@ public: class TextureEditorPlugin : public EditorPlugin { - OBJ_TYPE( TextureEditorPlugin, EditorPlugin ); + GDCLASS( TextureEditorPlugin, EditorPlugin ); TextureEditor *texture_editor; EditorNode *editor; diff --git a/tools/editor/plugins/texture_region_editor_plugin.cpp b/tools/editor/plugins/texture_region_editor_plugin.cpp index 6b918e6e8f..9b0ca0a482 100644 --- a/tools/editor/plugins/texture_region_editor_plugin.cpp +++ b/tools/editor/plugins/texture_region_editor_plugin.cpp @@ -1,11 +1,11 @@ /*************************************************************************/ -/* texture_region_editor_plugin.cpp */ +/* texture_region_editor_plugin.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Author: Mariano Suligoy */ /* */ @@ -28,9 +28,9 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ +#include "texture_region_editor_plugin.h" #include "core/core_string_names.h" -#include "texture_region_editor_plugin.h" #include "scene/gui/check_box.h" #include "os/input.h" #include "os/keyboard.h" @@ -57,14 +57,13 @@ void TextureRegionEditor::_region_draw() if (base_tex.is_null()) return; - Matrix32 mtx; + Transform2D mtx; mtx.elements[2]=-draw_ofs; mtx.scale_basis(Vector2(draw_zoom,draw_zoom)); - VS::get_singleton()->canvas_item_set_clip(edit_draw->get_canvas_item(),true); VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(),mtx); edit_draw->draw_texture(base_tex,Point2()); - VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(),Matrix32()); + VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(),Transform2D()); if (snap_mode == SNAP_GRID) { Size2 s = edit_draw->get_size(); @@ -166,13 +165,13 @@ void TextureRegionEditor::_region_draw() hscroll->set_min(scroll_rect.pos.x); hscroll->set_max(scroll_rect.pos.x+scroll_rect.size.x); hscroll->set_page(edit_draw->get_size().x); - hscroll->set_val(draw_ofs.x); + hscroll->set_value(draw_ofs.x); hscroll->set_step(0.001); vscroll->set_min(scroll_rect.pos.y); vscroll->set_max(scroll_rect.pos.y+scroll_rect.size.y); vscroll->set_page(edit_draw->get_size().y); - vscroll->set_val(draw_ofs.y); + vscroll->set_value(draw_ofs.y); vscroll->set_step(0.001); updating_scroll=false; @@ -204,7 +203,7 @@ void TextureRegionEditor::_region_draw() void TextureRegionEditor::_region_input(const InputEvent& p_input) { - Matrix32 mtx; + Transform2D mtx; mtx.elements[2]=-draw_ofs; mtx.scale_basis(Vector2(draw_zoom,draw_zoom)); @@ -388,9 +387,9 @@ void TextureRegionEditor::_region_input(const InputEvent& p_input) drag_index = -1; } } - } else if (mb.button_index == BUTTON_WHEEL_UP) { + } else if (mb.button_index == BUTTON_WHEEL_UP && mb.pressed) { _zoom_in(); - } else if (mb.button_index == BUTTON_WHEEL_DOWN) { + } else if (mb.button_index == BUTTON_WHEEL_DOWN && mb.pressed) { _zoom_out(); } } else if (p_input.type==InputEvent::MOUSE_MOTION) { @@ -400,8 +399,8 @@ void TextureRegionEditor::_region_input(const InputEvent& p_input) if (mm.button_mask&BUTTON_MASK_MIDDLE || Input::get_singleton()->is_key_pressed(KEY_SPACE)) { Vector2 draged(mm.relative_x,mm.relative_y); - hscroll->set_val( hscroll->get_val()-draged.x ); - vscroll->set_val( vscroll->get_val()-draged.y ); + hscroll->set_value( hscroll->get_value()-draged.x ); + vscroll->set_value( vscroll->get_value()-draged.y ); } else if (drag) { @@ -500,15 +499,15 @@ void TextureRegionEditor::_scroll_changed(float) if (updating_scroll) return; - draw_ofs.x=hscroll->get_val(); - draw_ofs.y=vscroll->get_val(); + draw_ofs.x=hscroll->get_value(); + draw_ofs.y=vscroll->get_value(); edit_draw->update(); } void TextureRegionEditor::_set_snap_mode(int p_mode) { - snap_mode = p_mode; snap_mode_button->get_popup()->set_item_checked(snap_mode,false); + snap_mode = p_mode; snap_mode_button->set_text(snap_mode_button->get_popup()->get_item_text(p_mode)); snap_mode_button->get_popup()->set_item_checked(snap_mode,true); @@ -615,21 +614,21 @@ void TextureRegionEditor::_node_removed(Object *p_obj) void TextureRegionEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_edit_region"),&TextureRegionEditor::_edit_region); - ObjectTypeDB::bind_method(_MD("_region_draw"),&TextureRegionEditor::_region_draw); - ObjectTypeDB::bind_method(_MD("_region_input"),&TextureRegionEditor::_region_input); - ObjectTypeDB::bind_method(_MD("_scroll_changed"),&TextureRegionEditor::_scroll_changed); - ObjectTypeDB::bind_method(_MD("_node_removed"),&TextureRegionEditor::_node_removed); - ObjectTypeDB::bind_method(_MD("_set_snap_mode"),&TextureRegionEditor::_set_snap_mode); - ObjectTypeDB::bind_method(_MD("_set_snap_off_x"),&TextureRegionEditor::_set_snap_off_x); - ObjectTypeDB::bind_method(_MD("_set_snap_off_y"),&TextureRegionEditor::_set_snap_off_y); - ObjectTypeDB::bind_method(_MD("_set_snap_step_x"),&TextureRegionEditor::_set_snap_step_x); - ObjectTypeDB::bind_method(_MD("_set_snap_step_y"),&TextureRegionEditor::_set_snap_step_y); - ObjectTypeDB::bind_method(_MD("_set_snap_sep_x"),&TextureRegionEditor::_set_snap_sep_x); - ObjectTypeDB::bind_method(_MD("_set_snap_sep_y"),&TextureRegionEditor::_set_snap_sep_y); - ObjectTypeDB::bind_method(_MD("_zoom_in"),&TextureRegionEditor::_zoom_in); - ObjectTypeDB::bind_method(_MD("_zoom_reset"),&TextureRegionEditor::_zoom_reset); - ObjectTypeDB::bind_method(_MD("_zoom_out"),&TextureRegionEditor::_zoom_out); + ClassDB::bind_method(_MD("_edit_region"),&TextureRegionEditor::_edit_region); + ClassDB::bind_method(_MD("_region_draw"),&TextureRegionEditor::_region_draw); + ClassDB::bind_method(_MD("_region_input"),&TextureRegionEditor::_region_input); + ClassDB::bind_method(_MD("_scroll_changed"),&TextureRegionEditor::_scroll_changed); + ClassDB::bind_method(_MD("_node_removed"),&TextureRegionEditor::_node_removed); + ClassDB::bind_method(_MD("_set_snap_mode"),&TextureRegionEditor::_set_snap_mode); + ClassDB::bind_method(_MD("_set_snap_off_x"),&TextureRegionEditor::_set_snap_off_x); + ClassDB::bind_method(_MD("_set_snap_off_y"),&TextureRegionEditor::_set_snap_off_y); + ClassDB::bind_method(_MD("_set_snap_step_x"),&TextureRegionEditor::_set_snap_step_x); + ClassDB::bind_method(_MD("_set_snap_step_y"),&TextureRegionEditor::_set_snap_step_y); + ClassDB::bind_method(_MD("_set_snap_sep_x"),&TextureRegionEditor::_set_snap_sep_x); + ClassDB::bind_method(_MD("_set_snap_sep_y"),&TextureRegionEditor::_set_snap_sep_y); + ClassDB::bind_method(_MD("_zoom_in"),&TextureRegionEditor::_zoom_in); + ClassDB::bind_method(_MD("_zoom_reset"),&TextureRegionEditor::_zoom_reset); + ClassDB::bind_method(_MD("_zoom_out"),&TextureRegionEditor::_zoom_out); } void TextureRegionEditor::edit(Object *p_obj) @@ -644,7 +643,7 @@ void TextureRegionEditor::edit(Object *p_obj) atlas_tex->disconnect("atlas_changed",this,"_edit_region"); if (p_obj) { node_sprite = p_obj->cast_to<Sprite>(); - node_patch9 = p_obj->cast_to<Patch9Frame>(); + node_patch9 = p_obj->cast_to<NinePatchRect>(); if (p_obj->cast_to<StyleBoxTexture>()) obj_styleBox = Ref<StyleBoxTexture>(p_obj->cast_to<StyleBoxTexture>()); if (p_obj->cast_to<AtlasTexture>()) { @@ -654,17 +653,17 @@ void TextureRegionEditor::edit(Object *p_obj) p_obj->connect("texture_changed",this,"_edit_region"); } p_obj->add_change_receptor(this); - p_obj->connect("exit_tree",this,"_node_removed",varray(p_obj),CONNECT_ONESHOT); + p_obj->connect("tree_exited",this,"_node_removed",varray(p_obj),CONNECT_ONESHOT); _edit_region(); } else { if(node_sprite) - node_sprite->disconnect("exit_tree",this,"_node_removed"); + node_sprite->disconnect("tree_exited",this,"_node_removed"); else if(node_patch9) - node_patch9->disconnect("exit_tree",this,"_node_removed"); + node_patch9->disconnect("tree_exited",this,"_node_removed"); else if(obj_styleBox.is_valid()) - obj_styleBox->disconnect("exit_tree",this,"_node_removed"); + obj_styleBox->disconnect("tree_exited",this,"_node_removed"); else if(atlas_tex.is_valid()) - atlas_tex->disconnect("exit_tree",this,"_node_removed"); + atlas_tex->disconnect("tree_exited",this,"_node_removed"); node_sprite = NULL; node_patch9 = NULL; @@ -818,7 +817,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) for (int i = 0; i < 4; i++) p->set_item_as_checkable(i,true); p->set_item_checked(0,true); - p->connect("item_pressed", this, "_set_snap_mode"); + p->connect("id_pressed", this, "_set_snap_mode"); hb_grid = memnew( HBoxContainer ); hb_tools->add_child(hb_grid); hb_grid->add_child( memnew( VSeparator )); @@ -829,7 +828,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) sb_off_x->set_min(-256); sb_off_x->set_max(256); sb_off_x->set_step(1); - sb_off_x->set_val(snap_offset.x); + sb_off_x->set_value(snap_offset.x); sb_off_x->set_suffix("px"); sb_off_x->connect("value_changed", this, "_set_snap_off_x"); hb_grid->add_child(sb_off_x); @@ -838,7 +837,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) sb_off_y->set_min(-256); sb_off_y->set_max(256); sb_off_y->set_step(1); - sb_off_y->set_val(snap_offset.y); + sb_off_y->set_value(snap_offset.y); sb_off_y->set_suffix("px"); sb_off_y->connect("value_changed", this, "_set_snap_off_y"); hb_grid->add_child(sb_off_y); @@ -850,7 +849,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) sb_step_x->set_min(-256); sb_step_x->set_max(256); sb_step_x->set_step(1); - sb_step_x->set_val(snap_step.x); + sb_step_x->set_value(snap_step.x); sb_step_x->set_suffix("px"); sb_step_x->connect("value_changed", this, "_set_snap_step_x"); hb_grid->add_child(sb_step_x); @@ -859,7 +858,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) sb_step_y->set_min(-256); sb_step_y->set_max(256); sb_step_y->set_step(1); - sb_step_y->set_val(snap_step.y); + sb_step_y->set_value(snap_step.y); sb_step_y->set_suffix("px"); sb_step_y->connect("value_changed", this, "_set_snap_step_y"); hb_grid->add_child(sb_step_y); @@ -871,7 +870,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) sb_sep_x->set_min(0); sb_sep_x->set_max(256); sb_sep_x->set_step(1); - sb_sep_x->set_val(snap_separation.x); + sb_sep_x->set_value(snap_separation.x); sb_sep_x->set_suffix("px"); sb_sep_x->connect("value_changed", this, "_set_snap_sep_x"); hb_grid->add_child(sb_sep_x); @@ -880,7 +879,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) sb_sep_y->set_min(0); sb_sep_y->set_max(256); sb_sep_y->set_step(1); - sb_sep_y->set_val(snap_separation.y); + sb_sep_y->set_value(snap_separation.y); sb_sep_y->set_suffix("px"); sb_sep_y->connect("value_changed", this, "_set_snap_sep_y"); hb_grid->add_child(sb_sep_y); @@ -898,7 +897,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) separator->set_h_size_flags(Control::SIZE_EXPAND_FILL); hb_tools->add_child(separator); - icon_zoom = memnew( TextureFrame ); + icon_zoom = memnew( TextureRect ); hb_tools->add_child(icon_zoom); zoom_out = memnew( ToolButton ); @@ -921,10 +920,12 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor) hscroll->connect("value_changed",this,"_scroll_changed"); edit_draw->connect("draw",this,"_region_draw"); - edit_draw->connect("input_event",this,"_region_input"); + edit_draw->connect("gui_input",this,"_region_input"); draw_zoom=1.0; updating_scroll=false; + edit_draw->set_clip_contents(true); + } void TextureRegionEditorPlugin::edit(Object *p_node) @@ -934,7 +935,7 @@ void TextureRegionEditorPlugin::edit(Object *p_node) bool TextureRegionEditorPlugin::handles(Object *p_obj) const { - return p_obj->is_type("Sprite") || p_obj->is_type("Patch9Frame") || p_obj->is_type("StyleBoxTexture") || p_obj->is_type("AtlasTexture"); + return p_obj->is_class("Sprite") || p_obj->is_class("Patch9Rect") || p_obj->is_class("StyleBoxTexture") || p_obj->is_class("AtlasTexture"); } void TextureRegionEditorPlugin::make_visible(bool p_visible) @@ -971,22 +972,22 @@ void TextureRegionEditorPlugin::set_state(const Dictionary& p_state){ if (state.has("snap_step")) { Vector2 s = state["snap_step"]; - region_editor->sb_step_x->set_val(s.x); - region_editor->sb_step_y->set_val(s.y); + region_editor->sb_step_x->set_value(s.x); + region_editor->sb_step_y->set_value(s.y); region_editor->snap_step = s; } if (state.has("snap_offset")) { Vector2 ofs = state["snap_offset"]; - region_editor->sb_off_x->set_val(ofs.x); - region_editor->sb_off_y->set_val(ofs.y); + region_editor->sb_off_x->set_value(ofs.x); + region_editor->sb_off_y->set_value(ofs.y); region_editor->snap_offset = ofs; } if (state.has("snap_separation")) { Vector2 sep = state["snap_separation"]; - region_editor->sb_sep_x->set_val(sep.x); - region_editor->sb_sep_y->set_val(sep.y); + region_editor->sb_sep_x->set_value(sep.x); + region_editor->sb_sep_y->set_value(sep.y); region_editor->snap_separation = sep; } diff --git a/tools/editor/plugins/texture_region_editor_plugin.h b/tools/editor/plugins/texture_region_editor_plugin.h index f0bb7c9bc2..da713a53d3 100644 --- a/tools/editor/plugins/texture_region_editor_plugin.h +++ b/tools/editor/plugins/texture_region_editor_plugin.h @@ -1,11 +1,11 @@ /*************************************************************************/ -/* texture_region_editor_plugin.h */ +/* texture_region_editor_plugin.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Author: Mariano Suligoy */ /* */ @@ -36,13 +36,13 @@ #include "tools/editor/editor_plugin.h" #include "tools/editor/editor_node.h" #include "scene/2d/sprite.h" -#include "scene/gui/patch_9_frame.h" +#include "scene/gui/patch_9_rect.h" #include "scene/resources/style_box.h" #include "scene/resources/texture.h" class TextureRegionEditor : public Control { - OBJ_TYPE(TextureRegionEditor, Control ); + GDCLASS(TextureRegionEditor, Control ); enum SnapMode { SNAP_NONE, @@ -53,7 +53,7 @@ class TextureRegionEditor : public Control { friend class TextureRegionEditorPlugin; MenuButton *snap_mode_button; - TextureFrame *icon_zoom; + TextureRect *icon_zoom; ToolButton *zoom_in; ToolButton *zoom_reset; ToolButton *zoom_out; @@ -81,7 +81,7 @@ class TextureRegionEditor : public Control { Vector2 snap_step; Vector2 snap_separation; - Patch9Frame *node_patch9; + NinePatchRect *node_patch9; Sprite *node_sprite; Ref<StyleBoxTexture> obj_styleBox; Ref<AtlasTexture> atlas_tex; @@ -132,7 +132,7 @@ public: class TextureRegionEditorPlugin : public EditorPlugin { - OBJ_TYPE( TextureRegionEditorPlugin, EditorPlugin ); + GDCLASS( TextureRegionEditorPlugin, EditorPlugin ); Button *region_button; TextureRegionEditor *region_editor; diff --git a/tools/editor/plugins/theme_editor_plugin.cpp b/tools/editor/plugins/theme_editor_plugin.cpp index 84568aa8c0..4b8fea5a45 100644 --- a/tools/editor/plugins/theme_editor_plugin.cpp +++ b/tools/editor/plugins/theme_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,9 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "version.h" #include "theme_editor_plugin.h" + +#include "version.h" #include "os/file_access.h" void ThemeEditor::edit(const Ref<Theme>& p_theme) { @@ -584,7 +585,7 @@ void ThemeEditor::_theme_menu_cbk(int p_option) { List<StringName> types; base_theme->get_type_list(&types); - type_menu->get_popup()->clear();; + type_menu->get_popup()->clear(); if (p_option==0 || p_option==1) {//add @@ -631,12 +632,12 @@ void ThemeEditor::_notification(int p_what) { void ThemeEditor::_bind_methods() { - ObjectTypeDB::bind_method("_type_menu_cbk",&ThemeEditor::_type_menu_cbk); - ObjectTypeDB::bind_method("_name_menu_about_to_show",&ThemeEditor::_name_menu_about_to_show); - ObjectTypeDB::bind_method("_name_menu_cbk",&ThemeEditor::_name_menu_cbk); - ObjectTypeDB::bind_method("_theme_menu_cbk",&ThemeEditor::_theme_menu_cbk); - ObjectTypeDB::bind_method("_dialog_cbk",&ThemeEditor::_dialog_cbk); - ObjectTypeDB::bind_method("_save_template_cbk",&ThemeEditor::_save_template_cbk); + ClassDB::bind_method("_type_menu_cbk",&ThemeEditor::_type_menu_cbk); + ClassDB::bind_method("_name_menu_about_to_show",&ThemeEditor::_name_menu_about_to_show); + ClassDB::bind_method("_name_menu_cbk",&ThemeEditor::_name_menu_cbk); + ClassDB::bind_method("_theme_menu_cbk",&ThemeEditor::_theme_menu_cbk); + ClassDB::bind_method("_dialog_cbk",&ThemeEditor::_dialog_cbk); + ClassDB::bind_method("_save_template_cbk",&ThemeEditor::_save_template_cbk); } ThemeEditor::ThemeEditor() { @@ -679,7 +680,7 @@ ThemeEditor::ThemeEditor() { add_child(theme_menu); theme_menu->set_pos(Vector2(3,3)*EDSCALE); - theme_menu->get_popup()->connect("item_pressed", this,"_theme_menu_cbk"); + theme_menu->get_popup()->connect("id_pressed", this,"_theme_menu_cbk"); HBoxContainer *main_hb = memnew( HBoxContainer ); @@ -693,9 +694,9 @@ ThemeEditor::ThemeEditor() { -// main_panel->add_child(panel); -// panel->set_area_as_parent_rect(); -// panel->set_margin( MARGIN_TOP,20 ); + //main_panel->add_child(panel); + //panel->set_area_as_parent_rect(); + //panel->set_margin( MARGIN_TOP,20 ); first_vb->add_child(memnew( Label("Label") )); @@ -711,7 +712,7 @@ ThemeEditor::ThemeEditor() { first_vb->add_child(cbx ); - ButtonGroup *bg = memnew( ButtonGroup ); + VBoxContainer *bg = memnew( VBoxContainer ); bg->set_v_size_flags(SIZE_EXPAND_FILL); VBoxContainer *gbvb = memnew( VBoxContainer ); gbvb->set_v_size_flags(SIZE_EXPAND_FILL); @@ -750,7 +751,7 @@ ThemeEditor::ThemeEditor() { first_vb->add_child( memnew( HScrollBar )); first_vb->add_child( memnew( SpinBox )); ProgressBar *pb=memnew( ProgressBar ); - pb->set_val(50); + pb->set_value(50); first_vb->add_child( pb); Panel *pn=memnew( Panel ); pn->set_custom_minimum_size(Size2(40,40)*EDSCALE); @@ -898,7 +899,7 @@ ThemeEditor::ThemeEditor() { type_menu->set_text(".."); add_del_dialog->add_child(type_menu); - type_menu->get_popup()->connect("item_pressed", this,"_type_menu_cbk"); + type_menu->get_popup()->connect("id_pressed", this,"_type_menu_cbk"); l = memnew( Label ); l->set_pos( Point2(200,5)*EDSCALE ); @@ -918,7 +919,7 @@ ThemeEditor::ThemeEditor() { add_del_dialog->add_child(name_menu); name_menu->get_popup()->connect("about_to_show", this,"_name_menu_about_to_show"); - name_menu->get_popup()->connect("item_pressed", this,"_name_menu_cbk"); + name_menu->get_popup()->connect("id_pressed", this,"_name_menu_cbk"); type_select_label= memnew( Label ); type_select_label->set_pos( Point2(400,5)*EDSCALE ); @@ -963,7 +964,7 @@ void ThemeEditorPlugin::edit(Object *p_node) { bool ThemeEditorPlugin::handles(Object *p_node) const{ - return p_node->is_type("Theme"); + return p_node->is_class("Theme"); } void ThemeEditorPlugin::make_visible(bool p_visible){ @@ -975,7 +976,7 @@ void ThemeEditorPlugin::make_visible(bool p_visible){ } else { theme_editor->set_process(false); - if (theme_editor->is_visible()) + if (theme_editor->is_visible_in_tree()) editor->hide_bottom_panel(); button->hide(); } @@ -987,7 +988,7 @@ ThemeEditorPlugin::ThemeEditorPlugin(EditorNode *p_node) { theme_editor = memnew( ThemeEditor ); theme_editor->set_custom_minimum_size(Size2(0,200)); -// p_node->get_viewport()->add_child(theme_editor); + //p_node->get_viewport()->add_child(theme_editor); button=editor->add_bottom_panel_item("Theme",theme_editor); button->hide(); diff --git a/tools/editor/plugins/theme_editor_plugin.h b/tools/editor/plugins/theme_editor_plugin.h index ea8f8c1d3c..9251da8e07 100644 --- a/tools/editor/plugins/theme_editor_plugin.h +++ b/tools/editor/plugins/theme_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -30,7 +30,7 @@ #define THEME_EDITOR_PLUGIN_H #include "scene/resources/theme.h" -#include "scene/gui/texture_frame.h" +#include "scene/gui/texture_rect.h" #include "scene/gui/option_button.h" #include "scene/gui/file_dialog.h" #include "scene/gui/check_box.h" @@ -44,7 +44,7 @@ class ThemeEditor : public Control { - OBJ_TYPE( ThemeEditor, Control ); + GDCLASS( ThemeEditor, Control ); ScrollContainer *scroll; @@ -103,7 +103,7 @@ public: class ThemeEditorPlugin : public EditorPlugin { - OBJ_TYPE( ThemeEditorPlugin, EditorPlugin ); + GDCLASS( ThemeEditorPlugin, EditorPlugin ); ThemeEditor *theme_editor; EditorNode *editor; diff --git a/tools/editor/plugins/tile_map_editor_plugin.cpp b/tools/editor/plugins/tile_map_editor_plugin.cpp index 43fe7d7ea9..7c232f0c32 100644 --- a/tools/editor/plugins/tile_map_editor_plugin.cpp +++ b/tools/editor/plugins/tile_map_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,12 +26,10 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ - #include "tile_map_editor_plugin.h" #include "os/keyboard.h" #include "os/input.h" - #include "canvas_item_editor_plugin.h" #include "tools/editor/editor_settings.h" #include "tools/editor/editor_scale.h" @@ -53,7 +51,7 @@ void TileMapEditor::_notification(int p_what) { } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { - if (is_visible()) { + if (is_visible_in_tree()) { _update_palette(); } } break; @@ -189,7 +187,7 @@ void TileMapEditor::_sbox_input(const InputEvent& p_ie) { p_ie.key.scancode == KEY_PAGEUP || p_ie.key.scancode == KEY_PAGEDOWN ) ) { - palette->call("_input_event", p_ie); + palette->call("_gui_input", p_ie); search_box->accept_event(); } } @@ -212,16 +210,16 @@ void TileMapEditor::_update_palette() { if (tiles.empty()) return; - float min_size = EDITOR_DEF("tile_map/preview_size", 64); + float min_size = EDITOR_DEF("editors/tile_map/preview_size", 64); min_size *= EDSCALE; - int hseparation = EDITOR_DEF("tile_map/palette_item_hseparation",8); - bool show_tile_names = bool(EDITOR_DEF("tile_map/show_tile_names", true)); + int hseparation = EDITOR_DEF("editors/tile_map/palette_item_hseparation",8); + bool show_tile_names = bool(EDITOR_DEF("editors/tile_map/show_tile_names", true)); palette->add_constant_override("hseparation", hseparation*EDSCALE); palette->add_constant_override("vseparation", 8*EDSCALE); palette->set_fixed_icon_size(Size2(min_size, min_size)); - palette->set_fixed_column_width(min_size * MAX(size_slider->get_val(), 1)); + palette->set_fixed_column_width(min_size * MAX(size_slider->get_value(), 1)); String filter = search_box->get_text().strip_edges(); @@ -289,7 +287,7 @@ void TileMapEditor::_pick_tile(const Point2& p_pos) { canvas_item_editor->update(); } -DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase) { +PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase, bool preview) { int prev_id = node->get_cell(p_start.x, p_start.y); int id = TileMap::INVALID_CELL; @@ -297,14 +295,43 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase) id = get_selected_tile(); if (id == TileMap::INVALID_CELL) - return DVector<Vector2>(); + return PoolVector<Vector2>(); } - Rect2 r = node->get_item_rect(); + Rect2i r = node->get_item_rect(); r.pos = r.pos/node->get_cell_size(); r.size = r.size/node->get_cell_size(); - DVector<Vector2> points; + int area = r.get_area(); + if(preview) { + // Test if we can re-use the result from preview bucket fill + bool invalidate_cache = false; + // Area changed + if(r != bucket_cache_rect) + _clear_bucket_cache(); + // Cache grid is not initialized + if(bucket_cache_visited == 0) { + bucket_cache_visited = new bool[area]; + invalidate_cache = true; + } + // Tile ID changed or position wasn't visited by the previous fill + int loc = (p_start.x - r.get_pos().x) + (p_start.y - r.get_pos().y) * r.get_size().x; + if(prev_id != bucket_cache_tile || !bucket_cache_visited[loc]) { + invalidate_cache = true; + } + if(invalidate_cache) { + for(int i = 0; i < area; ++i) + bucket_cache_visited[i] = false; + bucket_cache = PoolVector<Vector2>(); + bucket_cache_tile = prev_id; + bucket_cache_rect = r; + } + else { + return bucket_cache; + } + } + + PoolVector<Vector2> points; List<Point2i> queue; queue.push_back(p_start); @@ -319,9 +346,17 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase) if (node->get_cell(n.x, n.y) == prev_id) { - node->set_cellv(n, id, flip_h, flip_v, transpose); - - points.push_back(n); + if(preview) { + int loc = (n.x - r.get_pos().x) + (n.y - r.get_pos().y) * r.get_size().x; + if(bucket_cache_visited[loc]) + continue; + bucket_cache_visited[loc] = true; + bucket_cache.push_back(n); + } + else { + node->set_cellv(n, id, flip_h, flip_v, transpose); + points.push_back(n); + } queue.push_back(n + Point2i(0, 1)); queue.push_back(n + Point2i(0, -1)); @@ -330,13 +365,13 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase) } } - return points; + return preview ? bucket_cache : points; } -void TileMapEditor::_fill_points(const DVector<Vector2> p_points, const Dictionary& p_op) { +void TileMapEditor::_fill_points(const PoolVector<Vector2> p_points, const Dictionary& p_op) { int len = p_points.size(); - DVector<Vector2>::Read pr = p_points.read(); + PoolVector<Vector2>::Read pr = p_points.read(); int id = p_op["id"]; bool xf = p_op["flip_h"]; @@ -349,10 +384,10 @@ void TileMapEditor::_fill_points(const DVector<Vector2> p_points, const Dictiona } } -void TileMapEditor::_erase_points(const DVector<Vector2> p_points) { +void TileMapEditor::_erase_points(const PoolVector<Vector2> p_points) { int len = p_points.size(); - DVector<Vector2>::Read pr = p_points.read(); + PoolVector<Vector2>::Read pr = p_points.read(); for (int i=0;i<len;i++) { @@ -380,7 +415,7 @@ void TileMapEditor::_select(const Point2i& p_from, const Point2i& p_to) { canvas_item_editor->update(); } -void TileMapEditor::_draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Matrix32& p_xform) { +void TileMapEditor::_draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform) { Ref<Texture> t = node->get_tileset()->tile_get_texture(p_cell); @@ -468,6 +503,25 @@ void TileMapEditor::_draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h canvas_item_editor->draw_texture_rect_region(t, rect, r, Color(1,1,1,0.5), p_transpose); } +void TileMapEditor::_draw_fill_preview(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform) { + + PoolVector<Vector2> points = _bucket_fill(p_point, false, true); + PoolVector<Vector2>::Read pr = points.read(); + int len = points.size(); + int time_after = OS::get_singleton()->get_ticks_msec(); + + for(int i = 0; i < len; ++i) { + _draw_cell(p_cell, pr[i], p_flip_h, p_flip_v, p_transpose, p_xform); + } +} + +void TileMapEditor::_clear_bucket_cache() { + if(bucket_cache_visited) { + delete[] bucket_cache_visited; + bucket_cache_visited = 0; + } +} + void TileMapEditor::_update_copydata() { copydata.clear(); @@ -539,13 +593,13 @@ static inline Vector<Point2i> line(int x0, int x1, int y0, int y1) { return points; } -bool TileMapEditor::forward_input_event(const InputEvent& p_event) { +bool TileMapEditor::forward_gui_input(const InputEvent& p_event) { - if (!node || !node->get_tileset().is_valid() || !node->is_visible()) + if (!node || !node->get_tileset().is_valid() || !node->is_visible_in_tree()) return false; - Matrix32 xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform(); - Matrix32 xform_inv = xform.affine_inverse(); + Transform2D xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform(); + Transform2D xform_inv = xform.affine_inverse(); switch(p_event.type) { @@ -692,7 +746,7 @@ bool TileMapEditor::forward_input_event(const InputEvent& p_event) { pop["flip_v"] = node->is_cell_y_flipped(over_tile.x, over_tile.y); pop["transpose"] = node->is_cell_transposed(over_tile.x, over_tile.y); - DVector<Vector2> points = _bucket_fill(over_tile); + PoolVector<Vector2> points = _bucket_fill(over_tile); if (points.size() == 0) return false; @@ -798,7 +852,7 @@ bool TileMapEditor::forward_input_event(const InputEvent& p_event) { pop["flip_v"] = node->is_cell_y_flipped(over_tile.x, over_tile.y); pop["transpose"] = node->is_cell_transposed(over_tile.x, over_tile.y); - DVector<Vector2> points = _bucket_fill(over_tile, true); + PoolVector<Vector2> points = _bucket_fill(over_tile, true); if (points.size() == 0) return false; @@ -1015,10 +1069,10 @@ void TileMapEditor::_canvas_draw() { if (!node) return; - Matrix32 cell_xf = node->get_cell_transform(); + Transform2D cell_xf = node->get_cell_transform(); - Matrix32 xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform(); - Matrix32 xform_inv = xform.affine_inverse(); + Transform2D xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform(); + Transform2D xform_inv = xform.affine_inverse(); Size2 screen_size=canvas_item_editor->get_size(); @@ -1148,8 +1202,8 @@ void TileMapEditor::_canvas_draw() { canvas_item_editor->draw_line(endpoints[i],endpoints[(i+1)%4],col,2); - if (tool==TOOL_SELECTING || tool==TOOL_PICKING || tool==TOOL_BUCKET) { - + bool bucket_preview = EditorSettings::get_singleton()->get("editors/tile_map/bucket_fill_preview"); + if (tool==TOOL_SELECTING || tool==TOOL_PICKING || !bucket_preview) { return; } @@ -1214,6 +1268,11 @@ void TileMapEditor::_canvas_draw() { canvas_item_editor->draw_colored_polygon(points, Color(0.2,1.0,0.8,0.2)); + } else if(tool == TOOL_BUCKET) { + + int tile = get_selected_tile(); + _draw_fill_preview(tile, over_tile, flip_h, flip_v, transpose, xform); + } else { int st = get_selected_tile(); @@ -1241,10 +1300,10 @@ void TileMapEditor::edit(Node *p_tile_map) { node=p_tile_map->cast_to<TileMap>(); if (!canvas_item_editor->is_connected("draw",this,"_canvas_draw")) canvas_item_editor->connect("draw",this,"_canvas_draw"); - if (!canvas_item_editor->is_connected("mouse_enter",this,"_canvas_mouse_enter")) - canvas_item_editor->connect("mouse_enter",this,"_canvas_mouse_enter"); - if (!canvas_item_editor->is_connected("mouse_exit",this,"_canvas_mouse_exit")) - canvas_item_editor->connect("mouse_exit",this,"_canvas_mouse_exit"); + if (!canvas_item_editor->is_connected("mouse_entered",this,"_canvas_mouse_enter")) + canvas_item_editor->connect("mouse_entered",this,"_canvas_mouse_enter"); + if (!canvas_item_editor->is_connected("mouse_exited",this,"_canvas_mouse_exit")) + canvas_item_editor->connect("mouse_exited",this,"_canvas_mouse_exit"); _update_palette(); @@ -1253,10 +1312,10 @@ void TileMapEditor::edit(Node *p_tile_map) { if (canvas_item_editor->is_connected("draw",this,"_canvas_draw")) canvas_item_editor->disconnect("draw",this,"_canvas_draw"); - if (canvas_item_editor->is_connected("mouse_enter",this,"_canvas_mouse_enter")) - canvas_item_editor->disconnect("mouse_enter",this,"_canvas_mouse_enter"); - if (canvas_item_editor->is_connected("mouse_exit",this,"_canvas_mouse_exit")) - canvas_item_editor->disconnect("mouse_exit",this,"_canvas_mouse_exit"); + if (canvas_item_editor->is_connected("mouse_entered",this,"_canvas_mouse_enter")) + canvas_item_editor->disconnect("mouse_entered",this,"_canvas_mouse_enter"); + if (canvas_item_editor->is_connected("mouse_exited",this,"_canvas_mouse_exit")) + canvas_item_editor->disconnect("mouse_exited",this,"_canvas_mouse_exit"); _update_palette(); } @@ -1264,6 +1323,8 @@ void TileMapEditor::edit(Node *p_tile_map) { if (node) node->connect("settings_changed",this,"_tileset_settings_changed"); + _clear_bucket_cache(); + } void TileMapEditor::_tileset_settings_changed() { @@ -1283,20 +1344,20 @@ void TileMapEditor::_icon_size_changed(float p_value) { void TileMapEditor::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_text_entered"),&TileMapEditor::_text_entered); - ObjectTypeDB::bind_method(_MD("_text_changed"),&TileMapEditor::_text_changed); - ObjectTypeDB::bind_method(_MD("_sbox_input"),&TileMapEditor::_sbox_input); - ObjectTypeDB::bind_method(_MD("_menu_option"),&TileMapEditor::_menu_option); - ObjectTypeDB::bind_method(_MD("_canvas_draw"),&TileMapEditor::_canvas_draw); - ObjectTypeDB::bind_method(_MD("_canvas_mouse_enter"),&TileMapEditor::_canvas_mouse_enter); - ObjectTypeDB::bind_method(_MD("_canvas_mouse_exit"),&TileMapEditor::_canvas_mouse_exit); - ObjectTypeDB::bind_method(_MD("_tileset_settings_changed"),&TileMapEditor::_tileset_settings_changed); - ObjectTypeDB::bind_method(_MD("_update_transform_buttons"),&TileMapEditor::_update_transform_buttons); + ClassDB::bind_method(_MD("_text_entered"),&TileMapEditor::_text_entered); + ClassDB::bind_method(_MD("_text_changed"),&TileMapEditor::_text_changed); + ClassDB::bind_method(_MD("_sbox_input"),&TileMapEditor::_sbox_input); + ClassDB::bind_method(_MD("_menu_option"),&TileMapEditor::_menu_option); + ClassDB::bind_method(_MD("_canvas_draw"),&TileMapEditor::_canvas_draw); + ClassDB::bind_method(_MD("_canvas_mouse_enter"),&TileMapEditor::_canvas_mouse_enter); + ClassDB::bind_method(_MD("_canvas_mouse_exit"),&TileMapEditor::_canvas_mouse_exit); + ClassDB::bind_method(_MD("_tileset_settings_changed"),&TileMapEditor::_tileset_settings_changed); + ClassDB::bind_method(_MD("_update_transform_buttons"),&TileMapEditor::_update_transform_buttons); - ObjectTypeDB::bind_method(_MD("_fill_points"),&TileMapEditor::_fill_points); - ObjectTypeDB::bind_method(_MD("_erase_points"),&TileMapEditor::_erase_points); + ClassDB::bind_method(_MD("_fill_points"),&TileMapEditor::_fill_points); + ClassDB::bind_method(_MD("_erase_points"),&TileMapEditor::_erase_points); - ObjectTypeDB::bind_method(_MD("_icon_size_changed"), &TileMapEditor::_icon_size_changed); + ClassDB::bind_method(_MD("_icon_size_changed"), &TileMapEditor::_icon_size_changed); } TileMapEditor::CellOp TileMapEditor::_get_op_from_cell(const Point2i& p_pos) @@ -1365,6 +1426,9 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { flip_v=false; transpose=false; + bucket_cache_tile = -1; + bucket_cache_visited = 0; + ED_SHORTCUT("tile_map_editor/erase_selection", TTR("Erase selection"), KEY_DELETE); ED_SHORTCUT("tile_map_editor/find_tile", TTR("Find tile"), KEY_MASK_CMD+KEY_F); ED_SHORTCUT("tile_map_editor/transpose", TTR("Transpose")); @@ -1375,7 +1439,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { search_box->set_h_size_flags(SIZE_EXPAND_FILL); search_box->connect("text_entered", this, "_text_entered"); search_box->connect("text_changed", this, "_text_changed"); - search_box->connect("input_event", this, "_sbox_input"); + search_box->connect("gui_input", this, "_sbox_input"); add_child(search_box); size_slider = memnew( HSlider ); @@ -1383,11 +1447,11 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { size_slider->set_min(0.1f); size_slider->set_max(4.0f); size_slider->set_step(0.1f); - size_slider->set_val(1.0f); + size_slider->set_value(1.0f); size_slider->connect("value_changed", this, "_icon_size_changed"); add_child(size_slider); - int mw = EDITOR_DEF("tile_map/palette_min_width", 80); + int mw = EDITOR_DEF("editors/tile_map/palette_min_width", 80); // Add tile palette palette = memnew( ItemList ); @@ -1423,7 +1487,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { p->add_shortcut(ED_SHORTCUT("tile_map_editor/duplicate_selection", TTR("Duplicate Selection"), KEY_MASK_CMD+KEY_D), OPTION_DUPLICATE); p->add_shortcut(ED_GET_SHORTCUT("tile_map_editor/erase_selection"), OPTION_ERASE_SELECTION); - p->connect("item_pressed", this, "_menu_option"); + p->connect("id_pressed", this, "_menu_option"); toolbar->add_child(options); @@ -1479,6 +1543,10 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { rotate_0->set_pressed(true); } +TileMapEditor::~TileMapEditor() { + _clear_bucket_cache(); +} + /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// @@ -1490,7 +1558,7 @@ void TileMapEditorPlugin::edit(Object *p_object) { bool TileMapEditorPlugin::handles(Object *p_object) const { - return p_object->is_type("TileMap"); + return p_object->is_class("TileMap"); } void TileMapEditorPlugin::make_visible(bool p_visible) { @@ -1509,9 +1577,10 @@ void TileMapEditorPlugin::make_visible(bool p_visible) { TileMapEditorPlugin::TileMapEditorPlugin(EditorNode *p_node) { - EDITOR_DEF("tile_map/preview_size",64); - EDITOR_DEF("tile_map/palette_item_hseparation",8); - EDITOR_DEF("tile_map/show_tile_names", true); + EDITOR_DEF("editors/tile_map/preview_size",64); + EDITOR_DEF("editors/tile_map/palette_item_hseparation",8); + EDITOR_DEF("editors/tile_map/show_tile_names", true); + EDITOR_DEF("editors/tile_map/bucket_fill_preview", true); tile_map_editor = memnew( TileMapEditor(p_node) ); add_control_to_container(CONTAINER_CANVAS_EDITOR_SIDE, tile_map_editor); diff --git a/tools/editor/plugins/tile_map_editor_plugin.h b/tools/editor/plugins/tile_map_editor_plugin.h index 2f24002770..08032d9afd 100644 --- a/tools/editor/plugins/tile_map_editor_plugin.h +++ b/tools/editor/plugins/tile_map_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -44,7 +44,7 @@ class TileMapEditor : public VBoxContainer { - OBJ_TYPE(TileMapEditor, VBoxContainer ); + GDCLASS(TileMapEditor, VBoxContainer ); enum Tool { @@ -106,6 +106,11 @@ class TileMapEditor : public VBoxContainer { Point2i over_tile; + bool * bucket_cache_visited; + Rect2i bucket_cache_rect; + int bucket_cache_tile; + PoolVector<Vector2> bucket_cache; + struct CellOp { int idx; bool xf; @@ -129,14 +134,17 @@ class TileMapEditor : public VBoxContainer { void _pick_tile(const Point2& p_pos); - DVector<Vector2> _bucket_fill(const Point2i& p_start, bool erase=false); + PoolVector<Vector2> _bucket_fill(const Point2i& p_start, bool erase=false, bool preview=false); - void _fill_points(const DVector<Vector2> p_points, const Dictionary& p_op); - void _erase_points(const DVector<Vector2> p_points); + void _fill_points(const PoolVector<Vector2> p_points, const Dictionary& p_op); + void _erase_points(const PoolVector<Vector2> p_points); void _select(const Point2i& p_from, const Point2i& p_to); - void _draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Matrix32& p_xform); + void _draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform); + void _draw_fill_preview(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform); + void _clear_bucket_cache(); + void _update_copydata(); int get_selected_tile() const; @@ -167,21 +175,22 @@ public: HBoxContainer *get_toolbar() const { return toolbar; } - bool forward_input_event(const InputEvent& p_event); + bool forward_gui_input(const InputEvent& p_event); void edit(Node *p_tile_map); TileMapEditor(EditorNode *p_editor); + ~TileMapEditor(); }; class TileMapEditorPlugin : public EditorPlugin { - OBJ_TYPE( TileMapEditorPlugin, EditorPlugin ); + GDCLASS( TileMapEditorPlugin, EditorPlugin ); TileMapEditor *tile_map_editor; public: - virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return tile_map_editor->forward_input_event(p_event); } + virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return tile_map_editor->forward_gui_input(p_event); } virtual String get_name() const { return "TileMap"; } bool has_main_screen() const { return false; } diff --git a/tools/editor/plugins/tile_set_editor_plugin.cpp b/tools/editor/plugins/tile_set_editor_plugin.cpp index 39a15189e7..3db6c94917 100644 --- a/tools/editor/plugins/tile_set_editor_plugin.cpp +++ b/tools/editor/plugins/tile_set_editor_plugin.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,8 +27,10 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "tile_set_editor_plugin.h" + #include "scene/2d/sprite.h" #include "scene/2d/physics_body_2d.h" + void TileSetEditor::edit(const Ref<TileSet>& p_tileset) { tileset=p_tileset; @@ -76,6 +78,8 @@ void TileSetEditor::_import_scene(Node *scene, Ref<TileSet> p_library, bool p_me p_library->tile_set_texture(id,texture); p_library->tile_set_material(id,material); + p_library->tile_set_modulate(id,mi->get_modulate()); + Vector2 phys_offset; Size2 s; @@ -221,9 +225,9 @@ Error TileSetEditor::update_library_file(Node *p_base_scene, Ref<TileSet> ml,boo void TileSetEditor::_bind_methods() { - ObjectTypeDB::bind_method("_menu_cbk",&TileSetEditor::_menu_cbk); - ObjectTypeDB::bind_method("_menu_confirm",&TileSetEditor::_menu_confirm); - ObjectTypeDB::bind_method("_name_dialog_confirm",&TileSetEditor::_name_dialog_confirm); + ClassDB::bind_method("_menu_cbk",&TileSetEditor::_menu_cbk); + ClassDB::bind_method("_menu_confirm",&TileSetEditor::_menu_confirm); + ClassDB::bind_method("_name_dialog_confirm",&TileSetEditor::_name_dialog_confirm); } TileSetEditor::TileSetEditor(EditorNode *p_editor) { @@ -240,7 +244,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Create from Scene"),MENU_OPTION_CREATE_FROM_SCENE); options->get_popup()->add_item(TTR("Merge from Scene"),MENU_OPTION_MERGE_FROM_SCENE); - options->get_popup()->connect("item_pressed", this,"_menu_cbk"); + options->get_popup()->connect("id_pressed", this,"_menu_cbk"); editor=p_editor; cd = memnew(ConfirmationDialog); add_child(cd); @@ -268,7 +272,7 @@ void TileSetEditorPlugin::edit(Object *p_node) { bool TileSetEditorPlugin::handles(Object *p_node) const{ - return p_node->is_type("TileSet"); + return p_node->is_class("TileSet"); } void TileSetEditorPlugin::make_visible(bool p_visible){ diff --git a/tools/editor/plugins/tile_set_editor_plugin.h b/tools/editor/plugins/tile_set_editor_plugin.h index 3f47520e2a..7fec7fa162 100644 --- a/tools/editor/plugins/tile_set_editor_plugin.h +++ b/tools/editor/plugins/tile_set_editor_plugin.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -38,7 +38,7 @@ class TileSetEditor : public Control { - OBJ_TYPE( TileSetEditor, Control ); + GDCLASS( TileSetEditor, Control ); Ref<TileSet> tileset; @@ -78,7 +78,7 @@ public: class TileSetEditorPlugin : public EditorPlugin { - OBJ_TYPE( TileSetEditorPlugin, EditorPlugin ); + GDCLASS( TileSetEditorPlugin, EditorPlugin ); TileSetEditor *tileset_editor; EditorNode *editor; diff --git a/tools/editor/progress_dialog.cpp b/tools/editor/progress_dialog.cpp index a950f7acfc..76626c4556 100644 --- a/tools/editor/progress_dialog.cpp +++ b/tools/editor/progress_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,10 +27,12 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "progress_dialog.h" + #include "main/main.h" #include "message_queue.h" #include "os/os.h" #include "editor_scale.h" + void BackgroundProgress::_add_task(const String& p_task,const String& p_label, int p_steps) { _THREAD_SAFE_METHOD_ @@ -42,7 +44,7 @@ void BackgroundProgress::_add_task(const String& p_task,const String& p_label, i t.hb->add_child(l); t.progress = memnew( ProgressBar ); t.progress->set_max(p_steps); - t.progress->set_val(p_steps); + t.progress->set_value(p_steps); Control *ec = memnew( Control ); ec->set_h_size_flags(SIZE_EXPAND_FILL); ec->set_v_size_flags(SIZE_EXPAND_FILL); @@ -83,9 +85,9 @@ void BackgroundProgress::_task_step(const String& p_task, int p_step){ Task &t=tasks[p_task]; if (p_step<0) - t.progress->set_val(t.progress->get_val()+1); + t.progress->set_value(t.progress->get_value()+1); else - t.progress->set_val(p_step); + t.progress->set_value(p_step); } void BackgroundProgress::_end_task(const String& p_task){ @@ -101,10 +103,10 @@ void BackgroundProgress::_end_task(const String& p_task){ void BackgroundProgress::_bind_methods(){ - ObjectTypeDB::bind_method("_add_task",&BackgroundProgress::_add_task); - ObjectTypeDB::bind_method("_task_step",&BackgroundProgress::_task_step); - ObjectTypeDB::bind_method("_end_task",&BackgroundProgress::_end_task); - ObjectTypeDB::bind_method("_update",&BackgroundProgress::_update); + ClassDB::bind_method("_add_task",&BackgroundProgress::_add_task); + ClassDB::bind_method("_task_step",&BackgroundProgress::_task_step); + ClassDB::bind_method("_end_task",&BackgroundProgress::_end_task); + ClassDB::bind_method("_update",&BackgroundProgress::_update); } @@ -182,7 +184,7 @@ void ProgressDialog::add_task(const String& p_task,const String& p_label,int p_s t.vb->add_margin_child(p_label,vb2); t.progress = memnew( ProgressBar ); t.progress->set_max(p_steps); - t.progress->set_val(p_steps); + t.progress->set_value(p_steps); vb2->add_child(t.progress); t.state=memnew( Label ); t.state->set_clip_text(true); @@ -206,9 +208,9 @@ void ProgressDialog::task_step(const String& p_task, const String& p_state, int Task &t=tasks[p_task]; if (p_step<0) - t.progress->set_val(t.progress->get_val()+1); + t.progress->set_value(t.progress->get_value()+1); else - t.progress->set_val(p_step); + t.progress->set_value(p_step); t.state->set_text(p_state); last_progress_tick=OS::get_singleton()->get_ticks_usec(); diff --git a/tools/editor/progress_dialog.h b/tools/editor/progress_dialog.h index c254d45753..60acf825a9 100644 --- a/tools/editor/progress_dialog.h +++ b/tools/editor/progress_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ class BackgroundProgress : public HBoxContainer { - OBJ_TYPE(BackgroundProgress,HBoxContainer); + GDCLASS(BackgroundProgress,HBoxContainer); _THREAD_SAFE_CLASS_ @@ -72,7 +72,7 @@ public: class ProgressDialog : public Popup { - OBJ_TYPE( ProgressDialog, Popup ); + GDCLASS( ProgressDialog, Popup ); struct Task { String task; diff --git a/tools/editor/project_export.cpp b/tools/editor/project_export.cpp index 103962716b..cacefaa1a2 100644 --- a/tools/editor/project_export.cpp +++ b/tools/editor/project_export.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -31,12 +31,10 @@ #include "os/dir_access.h" #include "os/file_access.h" #include "globals.h" - #include "io/resource_loader.h" #include "io/resource_saver.h" #include "os/os.h" #include "scene/gui/box_container.h" - #include "scene/gui/tab_container.h" #include "scene/gui/scroll_container.h" #include "editor_data.h" @@ -67,14 +65,14 @@ bool ProjectExportDialog::_create_tree(TreeItem *p_parent,EditorFileSystemDirect has_items=true; } -// int cc = p_options.get_slice_count(","); + //int cc = p_options.get_slice_count(","); for (int i=0;i<p_dir->get_file_count();i++) { TreeItem *fitem = tree->create_item(item); //fitem->set_cell_mode(0,TreeItem::CELL_MODE_CHECK); //fitem->set_editable(0,true); - // fitem->set_checked(0,isfave); + //fitem->set_checked(0,isfave); fitem->set_text(0,p_dir->get_file(i)); String path = p_dir->get_file_path(i); fitem->set_tooltip(0,path); @@ -164,8 +162,8 @@ void ProjectExportDialog::_platform_selected() { String p =platforms->get_selected()->get_metadata(0); _update_platform(); -// editor->save_import_export(); -// EditorFileSystem::get_singleton()->scan(); + //editor->save_import_export(); + //EditorFileSystem::get_singleton()->scan(); } @@ -176,7 +174,7 @@ void ProjectExportDialog::_scan_finished() { print_line("**********SCAN DONEEE********"); print_line("**********SCAN DONEEE********");*/ - if (!is_visible()) { + if (!is_visible_in_tree()) { pending_update_tree=true; return; } @@ -274,7 +272,7 @@ void ProjectExportDialog::_script_edited(Variant v) { void ProjectExportDialog::_sample_convert_edited(int what) { EditorImportExport::get_singleton()->sample_set_action( EditorImportExport::SampleAction(sample_mode->get_selected())); - EditorImportExport::get_singleton()->sample_set_max_hz( sample_max_hz->get_val() ); + EditorImportExport::get_singleton()->sample_set_max_hz( sample_max_hz->get_value() ); EditorImportExport::get_singleton()->sample_set_trim( sample_trim->is_pressed() ); _save_export_cfg(); @@ -288,7 +286,7 @@ void ProjectExportDialog::_notification(int p_what) { CenterContainer *cc = memnew( CenterContainer ); - TextureFrame *tf = memnew( TextureFrame); + TextureRect *tf = memnew( TextureRect); tf->set_texture(get_icon("ErrorSign","EditorIcons")); cc->add_child(tf); plat_errors->add_child(cc); @@ -313,7 +311,7 @@ void ProjectExportDialog::_notification(int p_what) { } EditorFileSystem::get_singleton()->connect("filesystem_changed",this,"_scan_finished"); -// _rescan(); + //_rescan(); _update_platform(); export_mode->select( EditorImportExport::get_singleton()->get_export_filter() ); convert_text_scenes->set_pressed( EditorImportExport::get_singleton()->get_convert_text_scenes() ); @@ -325,8 +323,8 @@ void ProjectExportDialog::_notification(int p_what) { tree_vb->show(); image_action->select(EditorImportExport::get_singleton()->get_export_image_action()); - image_quality->set_val(EditorImportExport::get_singleton()->get_export_image_quality()); - image_shrink->set_val(EditorImportExport::get_singleton()->get_export_image_shrink()); + image_quality->set_value(EditorImportExport::get_singleton()->get_export_image_quality()); + image_shrink->set_value(EditorImportExport::get_singleton()->get_export_image_shrink()); _update_script(); @@ -343,14 +341,14 @@ void ProjectExportDialog::_notification(int p_what) { } image_formats->connect("item_edited",this,"_format_toggled"); group_add->set_icon(get_icon("Add","EditorIcons")); -// group_del->set_icon(get_icon("Del","EditorIcons")); + //group_del->set_icon(get_icon("Del","EditorIcons")); _update_group_list(); _update_group(); _update_group_tree(); sample_mode->select( EditorImportExport::get_singleton()->sample_get_action() ); - sample_max_hz->set_val( EditorImportExport::get_singleton()->sample_get_max_hz() ); + sample_max_hz->set_value( EditorImportExport::get_singleton()->sample_get_max_hz() ); sample_trim->set_pressed( EditorImportExport::get_singleton()->sample_get_trim() ); sample_mode->connect("item_selected",this,"_sample_convert_edited"); @@ -368,7 +366,7 @@ void ProjectExportDialog::_notification(int p_what) { } break; case NOTIFICATION_VISIBILITY_CHANGED: { - if (is_visible()) + if (is_visible_in_tree()) _validate_platform(); } break; @@ -448,7 +446,7 @@ void ProjectExportDialog::_export_mode_changed(int p_idx) { void ProjectExportDialog::_export_action(const String& p_file) { - String location = Globals::get_singleton()->globalize_path(p_file).get_base_dir().replace("\\","/"); + String location = GlobalConfig::get_singleton()->globalize_path(p_file).get_base_dir().replace("\\","/"); while(true) { @@ -589,6 +587,11 @@ void ProjectExportDialog::custom_action(const String&) { return; } + if (platform.to_lower()=="android" && _check_android_setting(exporter)==false){ + // not filled all field for Android release + return; + } + String extension = exporter->get_binary_extension(); file_export_password->set_editable( exporter->requires_password(exporter->is_debugging_enabled()) ); @@ -602,6 +605,204 @@ void ProjectExportDialog::custom_action(const String&) { } +LineEdit* ProjectExportDialog::_create_keystore_input(Control* container, const String& p_label, const String& name) { + + HBoxContainer* hb=memnew(HBoxContainer); + Label* lb=memnew(Label); + LineEdit* input=memnew(LineEdit); + + lb->set_text(p_label); + lb->set_custom_minimum_size(Size2(140*EDSCALE,0)); + lb->set_align(Label::ALIGN_RIGHT); + + input->set_custom_minimum_size(Size2(170*EDSCALE,0)); + input->set_name(name); + + hb->add_constant_override("separation", 10*EDSCALE); + hb->add_child(lb); + hb->add_child(input); + container->add_child(hb); + + return input; + +} + +void ProjectExportDialog::_create_android_keystore_window() { + + keystore_file_dialog = memnew( EditorFileDialog ); + add_child(keystore_file_dialog); + keystore_file_dialog->set_mode(EditorFileDialog::MODE_OPEN_DIR); + keystore_file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM); + keystore_file_dialog->set_current_dir( "res://" ); + + keystore_file_dialog->set_title(TTR("Target Path:")); + keystore_file_dialog->connect("dir_selected", this,"_keystore_dir_selected"); + + keystore_create_dialog=memnew(ConfirmationDialog); + VBoxContainer* vb=memnew(VBoxContainer); + vb->set_size(Size2(340*EDSCALE,0)); + keystore_create_dialog->set_title(TTR("Create Android keystore")); + + _create_keystore_input(vb, TTR("Full name"), "name"); + _create_keystore_input(vb, TTR("Organizational unit"), "unit"); + _create_keystore_input(vb, TTR("Organization"), "org"); + _create_keystore_input(vb, TTR("City"), "city"); + _create_keystore_input(vb, TTR("State"), "state"); + _create_keystore_input(vb, TTR("2 letter country code"), "code"); + _create_keystore_input(vb, TTR("User alias"), "alias"); + LineEdit* pass=_create_keystore_input(vb, TTR("Password"), "pass"); + pass->set_placeholder(TTR("at least 6 characters")); + _create_keystore_input(vb, TTR("File name"), "file"); + + Label* lb_path=memnew(Label); + LineEdit* path=memnew(LineEdit); + Button* btn=memnew(Button); + HBoxContainer* hb=memnew(HBoxContainer); + + lb_path->set_text(TTR("Path : (better to save outside of project)")); + path->set_h_size_flags(SIZE_EXPAND_FILL); + path->set_name("path"); + btn->set_text(" .. "); + btn->connect("pressed", keystore_file_dialog, "popup_centered_ratio"); + + vb->add_spacer(); + vb->add_child(lb_path); + hb->add_child(path); + hb->add_child(btn); + vb->add_child(hb); + + keystore_create_dialog->add_child(vb); + //keystore_create_dialog->set_child_rect(vb); + add_child(keystore_create_dialog); + + keystore_create_dialog->connect("confirmed", this, "_create_android_keystore"); + path->connect("text_changed", this, "_check_keystore_path"); + + confirm_keystore = memnew(ConfirmationDialog); + confirm_keystore->connect("confirmed", keystore_create_dialog, "popup_centered_minsize"); + add_child(confirm_keystore); + +} + +void ProjectExportDialog::_keystore_dir_selected(const String& path) { + + LineEdit* edit=keystore_create_dialog->find_node("path", true, false)->cast_to<LineEdit>(); + edit->set_text(path.simplify_path()); + +} + +void ProjectExportDialog::_keystore_created() { + + if (error->is_connected("popup_hide", this, "_keystore_created")){ + error->disconnect("popup_hide", this, "_keystore_created"); + } + custom_action("export_pck"); + +} + +void ProjectExportDialog::_check_keystore_path(const String& path) { + + LineEdit* edit=keystore_create_dialog->find_node("path", true, false)->cast_to<LineEdit>(); + bool exists = DirAccess::exists(path); + if (!exists) { + edit->add_color_override("font_color", Color(1,0,0,1)); + } else { + edit->add_color_override("font_color", Color(0,1,0,1)); + } + +} + +void ProjectExportDialog::_create_android_keystore() { + + Vector<String> names=String("name,unit,org,city,state,code,alias,pass").split(","); + String path=keystore_create_dialog->find_node("path", true, false)->cast_to<LineEdit>()->get_text(); + String file=keystore_create_dialog->find_node("file", true, false)->cast_to<LineEdit>()->get_text(); + + if (file.ends_with(".keystore")==false) { + file+=".keystore"; + } + String fullpath=path.plus_file(file); + String info="CN=$name, OU=$unit, O=$org, L=$city, S=$state, C=$code"; + Dictionary dic; + + for (int i=0;i<names.size();i++){ + LineEdit* edit = keystore_create_dialog->find_node(names[i], true, false)->cast_to<LineEdit>(); + dic[names[i]]=edit->get_text(); + info=info.replace("$"+names[i], edit->get_text()); + } + + String jarsigner=EditorSettings::get_singleton()->get("export/android/jarsigner"); + String keytool=jarsigner.get_base_dir().plus_file("keytool"); + String os_name=OS::get_singleton()->get_name(); + if (os_name.to_lower()=="windows") { + keytool+=".exe"; + } + + bool exist=FileAccess::exists(keytool); + if (!exist) { + error->set_text("Can't find 'keytool'"); + error->popup_centered_minsize(); + return; + } + + List<String> args; + args.push_back("-genkey"); + args.push_back("-v"); + args.push_back("-keystore"); + args.push_back(fullpath); + args.push_back("-alias"); + args.push_back(dic["alias"]); + args.push_back("-storepass"); + args.push_back(dic["pass"]); + args.push_back("-keypass"); + args.push_back(dic["pass"]); + args.push_back("-keyalg"); + args.push_back("RSA"); + args.push_back("-keysize"); + args.push_back("2048"); + args.push_back("-validity"); + args.push_back("10000"); + args.push_back("-dname"); + args.push_back(info); + int retval; + OS::get_singleton()->execute(keytool,args,true,NULL,NULL,&retval); + + if (retval==0) { // success + platform_options->_edit_set("keystore/release", fullpath); + platform_options->_edit_set("keystore/release_user", dic["alias"]); + platform_options->_edit_set("keystore/release_password", dic["pass"]); + + error->set_text("Android keystore created at \n"+fullpath); + error->connect("popup_hide", this, "_keystore_created"); + error->popup_centered_minsize(); + } else { // fail + error->set_text("Fail to create android keystore at \n"+fullpath); + error->popup_centered_minsize(); + } + +} + +bool ProjectExportDialog::_check_android_setting(const Ref<EditorExportPlatform>& exporter) { + + bool is_debugging = exporter->get("debug/debugging_enabled"); + String release = exporter->get("keystore/release"); + String user = exporter->get("keystore/release_user"); + String password = exporter->get("keystore/release_password"); + + if (!is_debugging && (release=="" || user=="" || password=="")){ + if (release==""){ + confirm_keystore->set_text(TTR("Release keystore is not set.\nDo you want to create one?")); + confirm_keystore->popup_centered_minsize(); + } else { + error->set_text(TTR("Fill Keystore/Release User and Release Password")); + error->popup_centered_minsize(); + } + return false; + } + + return true; + +} void ProjectExportDialog::_group_selected() { @@ -683,8 +884,8 @@ void ProjectExportDialog::_update_group() { StringName name = _get_selected_group(); group_image_action->select(EditorImportExport::get_singleton()->image_export_group_get_image_action(name)); group_atlas->set_pressed(EditorImportExport::get_singleton()->image_export_group_get_make_atlas(name)); - group_shrink->set_val(EditorImportExport::get_singleton()->image_export_group_get_shrink(name)); - group_lossy_quality->set_val(EditorImportExport::get_singleton()->image_export_group_get_lossy_quality(name)); + group_shrink->set_value(EditorImportExport::get_singleton()->image_export_group_get_shrink(name)); + group_lossy_quality->set_value(EditorImportExport::get_singleton()->image_export_group_get_lossy_quality(name)); if (group_atlas->is_pressed()) atlas_preview->show(); else @@ -718,7 +919,7 @@ bool ProjectExportDialog::_update_group_treef(TreeItem *p_parent,EditorFileSyste for(int i=0;i<p_dir->get_file_count();i++) { String fname = p_dir->get_file(i); - if (p_extensions.has(fname.to_lower().extension())) { + if (p_extensions.has(fname.to_lower().get_extension())) { String path = p_dir->get_file_path(i); if (filter!=String() && path.find(filter)==-1) @@ -806,8 +1007,8 @@ void ProjectExportDialog::_group_changed(Variant v) { EditorNode::get_undo_redo()->create_action(TTR("Change Image Group")); EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_image_action",name,group_image_action->get_selected()); EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_make_atlas",name,group_atlas->is_pressed()); - EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_shrink",name,group_shrink->get_val()); - EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_lossy_quality",name,group_lossy_quality->get_val()); + EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_shrink",name,group_shrink->get_value()); + EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_lossy_quality",name,group_lossy_quality->get_value()); EditorNode::get_undo_redo()->add_undo_method(EditorImportExport::get_singleton(),"image_export_group_set_image_action",name,EditorImportExport::get_singleton()->image_export_group_get_image_action(name)); EditorNode::get_undo_redo()->add_undo_method(EditorImportExport::get_singleton(),"image_export_group_set_make_atlas",name,EditorImportExport::get_singleton()->image_export_group_get_make_atlas(name)); EditorNode::get_undo_redo()->add_undo_method(EditorImportExport::get_singleton(),"image_export_group_set_shrink",name,EditorImportExport::get_singleton()->image_export_group_get_shrink(name)); @@ -1040,11 +1241,11 @@ void ProjectExportDialog::_group_atlas_preview() { int flags=0; - if (Globals::get_singleton()->get("image_loader/filter")) + if (GlobalConfig::get_singleton()->get("image_loader/filter")) flags|=EditorTextureImportPlugin::IMAGE_FLAG_FILTER; - if (!Globals::get_singleton()->get("image_loader/gen_mipmaps")) + if (!GlobalConfig::get_singleton()->get("image_loader/gen_mipmaps")) flags|=EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS; - if (!Globals::get_singleton()->get("image_loader/repeat")) + if (!GlobalConfig::get_singleton()->get("image_loader/repeat")) flags|=EditorTextureImportPlugin::IMAGE_FLAG_REPEAT; flags|=EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA; @@ -1089,44 +1290,48 @@ void ProjectExportDialog::_image_filter_changed(String) { void ProjectExportDialog::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_rescan"),&ProjectExportDialog::_rescan); - ObjectTypeDB::bind_method(_MD("_tree_changed"),&ProjectExportDialog::_tree_changed); - ObjectTypeDB::bind_method(_MD("_scan_finished"),&ProjectExportDialog::_scan_finished); - ObjectTypeDB::bind_method(_MD("_platform_selected"),&ProjectExportDialog::_platform_selected); - ObjectTypeDB::bind_method(_MD("_prop_edited"),&ProjectExportDialog::_prop_edited); - ObjectTypeDB::bind_method(_MD("_export_mode_changed"),&ProjectExportDialog::_export_mode_changed); - ObjectTypeDB::bind_method(_MD("_filters_edited"),&ProjectExportDialog::_filters_edited); - ObjectTypeDB::bind_method(_MD("_filters_exclude_edited"),&ProjectExportDialog::_filters_exclude_edited); - ObjectTypeDB::bind_method(_MD("_export_action"),&ProjectExportDialog::_export_action); - ObjectTypeDB::bind_method(_MD("_export_action_pck"),&ProjectExportDialog::_export_action_pck); - ObjectTypeDB::bind_method(_MD("_quality_edited"),&ProjectExportDialog::_quality_edited); - ObjectTypeDB::bind_method(_MD("_shrink_edited"),&ProjectExportDialog::_shrink_edited); - ObjectTypeDB::bind_method(_MD("_image_export_edited"),&ProjectExportDialog::_image_export_edited); - ObjectTypeDB::bind_method(_MD("_format_toggled"),&ProjectExportDialog::_format_toggled); - ObjectTypeDB::bind_method(_MD("_group_changed"),&ProjectExportDialog::_group_changed); - ObjectTypeDB::bind_method(_MD("_group_add"),&ProjectExportDialog::_group_add); - ObjectTypeDB::bind_method(_MD("_group_del"),&ProjectExportDialog::_group_del); - ObjectTypeDB::bind_method(_MD("_group_selected"),&ProjectExportDialog::_group_selected); - ObjectTypeDB::bind_method(_MD("_update_group"),&ProjectExportDialog::_update_group); - ObjectTypeDB::bind_method(_MD("_update_group_list"),&ProjectExportDialog::_update_group_list); - ObjectTypeDB::bind_method(_MD("_select_group"),&ProjectExportDialog::_select_group); - ObjectTypeDB::bind_method(_MD("_update_group_tree"),&ProjectExportDialog::_update_group_tree); - ObjectTypeDB::bind_method(_MD("_group_item_edited"),&ProjectExportDialog::_group_item_edited); - ObjectTypeDB::bind_method(_MD("_save_export_cfg"),&ProjectExportDialog::_save_export_cfg); - ObjectTypeDB::bind_method(_MD("_image_filter_changed"),&ProjectExportDialog::_image_filter_changed); - ObjectTypeDB::bind_method(_MD("_group_atlas_preview"),&ProjectExportDialog::_group_atlas_preview); - ObjectTypeDB::bind_method(_MD("_group_select_all"),&ProjectExportDialog::_group_select_all); - ObjectTypeDB::bind_method(_MD("_group_select_none"),&ProjectExportDialog::_group_select_none); - ObjectTypeDB::bind_method(_MD("_script_edited"),&ProjectExportDialog::_script_edited); - ObjectTypeDB::bind_method(_MD("_update_script"),&ProjectExportDialog::_update_script); - ObjectTypeDB::bind_method(_MD("_sample_convert_edited"),&ProjectExportDialog::_sample_convert_edited); - - - ObjectTypeDB::bind_method(_MD("export_platform"),&ProjectExportDialog::export_platform); - - -// ADD_SIGNAL(MethodInfo("instance")); -// ADD_SIGNAL(MethodInfo("open")); + ClassDB::bind_method(_MD("_rescan"),&ProjectExportDialog::_rescan); + ClassDB::bind_method(_MD("_tree_changed"),&ProjectExportDialog::_tree_changed); + ClassDB::bind_method(_MD("_scan_finished"),&ProjectExportDialog::_scan_finished); + ClassDB::bind_method(_MD("_platform_selected"),&ProjectExportDialog::_platform_selected); + ClassDB::bind_method(_MD("_prop_edited"),&ProjectExportDialog::_prop_edited); + ClassDB::bind_method(_MD("_export_mode_changed"),&ProjectExportDialog::_export_mode_changed); + ClassDB::bind_method(_MD("_filters_edited"),&ProjectExportDialog::_filters_edited); + ClassDB::bind_method(_MD("_filters_exclude_edited"),&ProjectExportDialog::_filters_exclude_edited); + ClassDB::bind_method(_MD("_export_action"),&ProjectExportDialog::_export_action); + ClassDB::bind_method(_MD("_export_action_pck"),&ProjectExportDialog::_export_action_pck); + ClassDB::bind_method(_MD("_quality_edited"),&ProjectExportDialog::_quality_edited); + ClassDB::bind_method(_MD("_shrink_edited"),&ProjectExportDialog::_shrink_edited); + ClassDB::bind_method(_MD("_image_export_edited"),&ProjectExportDialog::_image_export_edited); + ClassDB::bind_method(_MD("_format_toggled"),&ProjectExportDialog::_format_toggled); + ClassDB::bind_method(_MD("_group_changed"),&ProjectExportDialog::_group_changed); + ClassDB::bind_method(_MD("_group_add"),&ProjectExportDialog::_group_add); + ClassDB::bind_method(_MD("_group_del"),&ProjectExportDialog::_group_del); + ClassDB::bind_method(_MD("_group_selected"),&ProjectExportDialog::_group_selected); + ClassDB::bind_method(_MD("_update_group"),&ProjectExportDialog::_update_group); + ClassDB::bind_method(_MD("_update_group_list"),&ProjectExportDialog::_update_group_list); + ClassDB::bind_method(_MD("_select_group"),&ProjectExportDialog::_select_group); + ClassDB::bind_method(_MD("_update_group_tree"),&ProjectExportDialog::_update_group_tree); + ClassDB::bind_method(_MD("_group_item_edited"),&ProjectExportDialog::_group_item_edited); + ClassDB::bind_method(_MD("_save_export_cfg"),&ProjectExportDialog::_save_export_cfg); + ClassDB::bind_method(_MD("_image_filter_changed"),&ProjectExportDialog::_image_filter_changed); + ClassDB::bind_method(_MD("_group_atlas_preview"),&ProjectExportDialog::_group_atlas_preview); + ClassDB::bind_method(_MD("_group_select_all"),&ProjectExportDialog::_group_select_all); + ClassDB::bind_method(_MD("_group_select_none"),&ProjectExportDialog::_group_select_none); + ClassDB::bind_method(_MD("_script_edited"),&ProjectExportDialog::_script_edited); + ClassDB::bind_method(_MD("_update_script"),&ProjectExportDialog::_update_script); + ClassDB::bind_method(_MD("_sample_convert_edited"),&ProjectExportDialog::_sample_convert_edited); + + + ClassDB::bind_method(_MD("export_platform"),&ProjectExportDialog::export_platform); + ClassDB::bind_method(_MD("_create_android_keystore"),&ProjectExportDialog::_create_android_keystore); + ClassDB::bind_method(_MD("_check_keystore_path"),&ProjectExportDialog::_check_keystore_path); + ClassDB::bind_method(_MD("_keystore_dir_selected"),&ProjectExportDialog::_keystore_dir_selected); + ClassDB::bind_method(_MD("_keystore_created"),&ProjectExportDialog::_keystore_created); + + + //ADD_SIGNAL(MethodInfo("instance")); + //ADD_SIGNAL(MethodInfo("open")); } @@ -1138,7 +1343,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) { sections = memnew( TabContainer ); add_child(sections); - set_child_rect(sections); + //set_child_rect(sections); VBoxContainer *pvbox = memnew( VBoxContainer ); sections->add_child(pvbox); @@ -1309,7 +1514,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) { group_lossy_quality->set_min(0.1); group_lossy_quality->set_max(1.0); group_lossy_quality->set_step(0.01); - group_lossy_quality->set_val(0.7); + group_lossy_quality->set_value(0.7); group_lossy_quality->connect("value_changed",this,"_quality_edited"); HBoxContainer *gqhb = memnew( HBoxContainer ); @@ -1328,7 +1533,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) { group_shrink = memnew(SpinBox); group_shrink->set_min(1); group_shrink->set_max(8); - group_shrink->set_val(1); + group_shrink->set_value(1); group_shrink->set_step(0.001); group_options->add_margin_child(TTR("Shrink By:"),group_shrink); group_shrink->connect("value_changed",this,"_group_changed"); @@ -1370,8 +1575,8 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) { atlas_preview_dialog = memnew( AcceptDialog ); ScrollContainer *scroll = memnew( ScrollContainer ); atlas_preview_dialog->add_child(scroll); - atlas_preview_dialog->set_child_rect(scroll); - atlas_preview_frame = memnew( TextureFrame ); + //atlas_preview_dialog->set_child_rect(scroll); + atlas_preview_frame = memnew( TextureRect ); scroll->add_child(atlas_preview_frame); add_child(atlas_preview_dialog); @@ -1454,7 +1659,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) { file_export = memnew( EditorFileDialog ); add_child(file_export); file_export->set_access(EditorFileDialog::ACCESS_FILESYSTEM); - file_export->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_export_path") ); + file_export->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_export_path") ); file_export->set_title(TTR("Export Project")); file_export->connect("file_selected", this,"_export_action"); @@ -1466,7 +1671,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) { pck_export = memnew( EditorFileDialog ); pck_export->set_access(EditorFileDialog::ACCESS_FILESYSTEM); - pck_export->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_export_path") ); + pck_export->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_export_path") ); pck_export->set_title(TTR("Export Project PCK")); pck_export->connect("file_selected", this,"_export_action_pck"); pck_export->add_filter("*.pck ; Data Pack"); @@ -1479,6 +1684,8 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) { ei="EditorIcons"; ot="Object"; pending_update_tree=true; + + _create_android_keystore_window(); } @@ -1493,7 +1700,7 @@ void ProjectExport::popup_export() { presets.insert("default"); List<PropertyInfo> pi; - Globals::get_singleton()->get_property_list(&pi); + GlobalConfig::get_singleton()->get_property_list(&pi); export_preset->clear(); for (List<PropertyInfo>::Element *E=pi.front();E;E=E->next()) { @@ -1523,8 +1730,8 @@ Error ProjectExport::export_project(const String& p_preset) { String selected=p_preset; - DVector<String> preset_settings = Globals::get_singleton()->get("export_presets/"+selected); - String preset_path=Globals::get_singleton()->get("export_presets_path/"+selected); + PoolVector<String> preset_settings = GlobalConfig::get_singleton()->get("export_presets/"+selected); + String preset_path=GlobalConfig::get_singleton()->get("export_presets_path/"+selected); if (preset_path=="") { error->set_text("Export path empty, see export options"); @@ -1566,11 +1773,13 @@ Error ProjectExport::export_project(const String& p_preset) { { List<String> l; -// SceneLoader::get_recognized_extensions(&l); -// for(List<String>::Element *E=l.front();E;E=E->next()) { -// -// scene_extensions.insert(E->get()); -// } + /* + SceneLoader::get_recognized_extensions(&l); + for(List<String>::Element *E=l.front();E;E=E->next()) { + + scene_extensions.insert(E->get()); + } + */ ResourceLoader::get_recognized_extensions_for_type("",&l); for(List<String>::Element *E=l.front();E;E=E->next()) { @@ -1578,7 +1787,7 @@ Error ProjectExport::export_project(const String& p_preset) { } } - Vector<String> names = Globals::get_singleton()->get_optimizer_presets(); + Vector<String> names = GlobalConfig::get_singleton()->get_optimizer_presets(); //prepare base paths @@ -1688,7 +1897,7 @@ Error ProjectExport::export_project(const String& p_preset) { print_line("Exporting "+itos(idx)+"/"+itos(export_action.size())+": "+path); - String base_dir = Globals::get_singleton()->localize_path(path.get_base_dir()).replace("\\","/").replace("res://",""); + String base_dir = GlobalConfig::get_singleton()->localize_path(path.get_base_dir()).replace("\\","/").replace("res://",""); DirAccess *da=DirAccess::create(DirAccess::ACCESS_FILESYSTEM); String cwd = d->get_current_dir(); da->change_dir(cwd); @@ -1738,14 +1947,14 @@ Error ProjectExport::export_project(const String& p_preset) { delete_source=true; //create an optimized source file - if (!Globals::get_singleton()->has("optimizer_presets/"+preset)) { + if (!GlobalConfig::get_singleton()->has("optimizer_presets/"+preset)) { memdelete(d); ERR_EXPLAIN("Unknown optimizer preset: "+preset); ERR_FAIL_V(ERR_INVALID_DATA); } - Dictionary dc = Globals::get_singleton()->get("optimizer_presets/"+preset); + Dictionary dc = GlobalConfig::get_singleton()->get("optimizer_presets/"+preset); ERR_FAIL_COND_V(!dc.has("__type__"),ERR_INVALID_DATA); String type=dc["__type__"]; @@ -1785,8 +1994,10 @@ Error ProjectExport::export_project(const String& p_preset) { uint32_t flags=0; -// if (saver->is_bundle_scenes_enabled()) -// flags|=Reso::FLAG_BUNDLE_INSTANCED_SCENES; + /* + if (saver->is_bundle_scenes_enabled()) + flags|=Reso::FLAG_BUNDLE_INSTANCED_SCENES; + */ saver->set_bundle_exceptions(NULL); if (E->get().depaction>=ProjectExportSettings::DA_BUNDLE) { flags|=ResourceSaver::FLAG_BUNDLE_RESOURCES; @@ -1832,7 +2043,7 @@ Error ProjectExport::export_project(const String& p_preset) { ERR_FAIL_COND_V(err,ERR_CANT_OPEN); } source_file=write_file; - // project_settings->add_remapped_path(src_scene,path,platform); + //project_settings->add_remapped_path(src_scene,path,platform); } @@ -1875,7 +2086,7 @@ Error ProjectExport::export_project(const String& p_preset) { for (Map<String,Map<String,String> >::Element *E=remapped_paths.front();E;E=E->next()) { String platform=E->key(); - DVector<String> remaps; + PoolVector<String> remaps; for(Map<String,String>::Element *F=E->get().front();F;F=F->next() ) { remaps.push_back(F->key()); @@ -1884,13 +2095,13 @@ Error ProjectExport::export_project(const String& p_preset) { -// added_settings["remap/"+platform]=remaps;` + //added_settings["remap/"+platform]=remaps;` added_settings["remap/"+platform]=Variant(remaps).operator Array(); } String engine_cfg_path=d->get_current_dir()+"/engine.cfg"; print_line("enginecfg: "+engine_cfg_path); - Globals::get_singleton()->save_custom(engine_cfg_path,added_settings); + GlobalConfig::get_singleton()->save_custom(engine_cfg_path,added_settings); memdelete(d); return OK; @@ -1902,7 +2113,7 @@ ProjectExport::ProjectExport(EditorData* p_data) { editor_data=p_data; VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); set_title(TTR("Project Export")); label = memnew( Label ); label->set_text(TTR("Export Preset:")); diff --git a/tools/editor/project_export.h b/tools/editor/project_export.h index 8cf2bf3afc..06992a7e34 100644 --- a/tools/editor/project_export.h +++ b/tools/editor/project_export.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -49,7 +49,7 @@ class EditorNode; class ProjectExportDialog : public ConfirmationDialog { - OBJ_TYPE( ProjectExportDialog, ConfirmationDialog ); + GDCLASS( ProjectExportDialog, ConfirmationDialog ); public: enum ExportAction { @@ -73,6 +73,7 @@ private: bool pending_update_tree; AcceptDialog *error; ConfirmationDialog *confirm; + ConfirmationDialog *confirm_keystore; Button *button_reload; LineEdit *filters, *filters_exclude; @@ -98,7 +99,7 @@ private: bool _create_tree(TreeItem *p_parent,EditorFileSystemDirectory *p_dir); void _rescan(); -// void _confirmed(); + //void _confirmed(); void _scan_finished(); void _validate_platform(); @@ -133,7 +134,7 @@ private: AcceptDialog *atlas_preview_dialog; - TextureFrame *atlas_preview_frame; + TextureRect *atlas_preview_frame; VBoxContainer *script_vbox; @@ -145,6 +146,9 @@ private: SpinBox *sample_max_hz; CheckButton *sample_trim; + ConfirmationDialog* keystore_create_dialog; + EditorFileDialog* keystore_file_dialog; + void _export_mode_changed(int p_idx); void _prop_edited(String what); @@ -190,6 +194,13 @@ private: void _export_action_pck(const String& p_file); void ok_pressed(); void custom_action(const String&); + LineEdit* _create_keystore_input(Control* container, const String& p_label, const String& name); + void _create_android_keystore_window(); + void _create_android_keystore(); + bool _check_android_setting(const Ref<EditorExportPlatform>& exporter); + void _check_keystore_path(const String& path); + void _keystore_dir_selected(const String& path); + void _keystore_created(); void _save_export_cfg(); void _format_toggled(); @@ -212,7 +223,7 @@ public: class EditorData; class ProjectExport : public ConfirmationDialog { - OBJ_TYPE( ProjectExport, ConfirmationDialog ); + GDCLASS( ProjectExport, ConfirmationDialog ); EditorData *editor_data; diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp index 1c99982155..fb8cccdb79 100644 --- a/tools/editor/project_manager.cpp +++ b/tools/editor/project_manager.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -26,8 +26,9 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "version.h" #include "project_manager.h" + +#include "version.h" #include "os/os.h" #include "os/dir_access.h" #include "os/file_access.h" @@ -36,25 +37,21 @@ #include "scene/gui/separator.h" #include "scene/gui/tool_button.h" #include "io/config_file.h" - #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/texture_rect.h" #include "scene/gui/margin_container.h" #include "io/resource_saver.h" - #include "editor_themes.h" #include "editor_initialize_ssl.h" #include "editor_scale.h" - #include "io/zip_io.h" class NewProjectDialog : public ConfirmationDialog { - OBJ_TYPE(NewProjectDialog,ConfirmationDialog); + GDCLASS(NewProjectDialog,ConfirmationDialog); public: @@ -75,15 +72,22 @@ private: String zip_title; AcceptDialog *dialog_error; - bool _test_path() { + String _test_path() { error->set_text(""); get_ok()->set_disabled(true); DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - if (project_path->get_text() != "" && d->change_dir(project_path->get_text())!=OK) { + String valid_path; + if (d->change_dir(project_path->get_text())==OK){ + valid_path=project_path->get_text(); + } else if (d->change_dir(project_path->get_text().strip_edges())==OK) { + valid_path=project_path->get_text().strip_edges(); + } + + if (valid_path == "") { error->set_text(TTR("Invalid project path, the path must exist!")); memdelete(d); - return false; + return ""; } if (mode!=MODE_IMPORT) { @@ -92,30 +96,29 @@ private: error->set_text(TTR("Invalid project path, engine.cfg must not exist.")); memdelete(d); - return false; + return ""; } } else { - if (project_path->get_text() != "" && !d->file_exists("engine.cfg")) { + if (valid_path != "" && !d->file_exists("engine.cfg")) { error->set_text(TTR("Invalid project path, engine.cfg must exist.")); memdelete(d); - return false; + return ""; } } memdelete(d); get_ok()->set_disabled(false); - return true; + return valid_path; } void _path_text_changed(const String& p_path) { - if ( _test_path() ) { - - String sp=p_path; + String sp=_test_path(); + if ( sp!="" ) { sp=sp.replace("\\","/"); int lidx=sp.find_last("/"); @@ -141,7 +144,7 @@ private: } String sp = p.simplify_path(); project_path->set_text(sp); - _path_text_changed(p); + _path_text_changed(sp); get_ok()->call_deferred("grab_focus"); } @@ -150,7 +153,7 @@ private: String p = p_path; String sp = p.simplify_path(); project_path->set_text(sp); - _path_text_changed(p); + _path_text_changed(sp); get_ok()->call_deferred("grab_focus"); } @@ -173,27 +176,15 @@ private: void ok_pressed() { - if (!_test_path()) + String dir=_test_path(); + if (dir=="") { + error->set_text(TTR("Invalid project path (changed anything?).")); return; - - String dir; + } if (mode==MODE_IMPORT) { - dir=project_path->get_text(); - - + // nothing to do } else { - DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - - if (d->change_dir(project_path->get_text())!=OK) { - error->set_text(TTR("Invalid project path (changed anything?).")); - memdelete(d); - return; - } - - dir=d->get_current_dir(); - memdelete(d); - if (mode==MODE_NEW) { @@ -321,8 +312,6 @@ private: } - - } dir=dir.replace("\\","/"); @@ -335,7 +324,7 @@ private: hide(); - emit_signal("project_created"); + emit_signal("project_created", dir); } @@ -343,11 +332,11 @@ protected: static void _bind_methods() { - ObjectTypeDB::bind_method("_browse_path",&NewProjectDialog::_browse_path); - ObjectTypeDB::bind_method("_text_changed",&NewProjectDialog::_text_changed); - ObjectTypeDB::bind_method("_path_text_changed",&NewProjectDialog::_path_text_changed); - ObjectTypeDB::bind_method("_path_selected",&NewProjectDialog::_path_selected); - ObjectTypeDB::bind_method("_file_selected",&NewProjectDialog::_file_selected); + ClassDB::bind_method("_browse_path",&NewProjectDialog::_browse_path); + ClassDB::bind_method("_text_changed",&NewProjectDialog::_text_changed); + ClassDB::bind_method("_path_text_changed",&NewProjectDialog::_path_text_changed); + ClassDB::bind_method("_path_selected",&NewProjectDialog::_path_selected); + ClassDB::bind_method("_file_selected",&NewProjectDialog::_file_selected); ADD_SIGNAL( MethodInfo("project_created") ); } @@ -402,7 +391,7 @@ public: popup_centered(Size2(500,125)*EDSCALE); } - + project_path->grab_focus(); _test_path(); } @@ -412,7 +401,7 @@ public: VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); - set_child_rect(vb); + //set_child_rect(vb); Label* l = memnew(Label); l->set_text(TTR("Project Path:")); @@ -459,7 +448,7 @@ public: fdialog = memnew( FileDialog ); add_child(fdialog); fdialog->set_access(FileDialog::ACCESS_FILESYSTEM); - fdialog->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_path") ); + fdialog->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_path") ); project_name->connect("text_changed", this,"_text_changed"); project_path->connect("text_changed", this,"_path_text_changed"); fdialog->connect("dir_selected", this,"_path_selected"); @@ -496,7 +485,7 @@ void ProjectManager::_notification(int p_what) { } else if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { - set_process_unhandled_input(is_visible()); + set_process_unhandled_input(is_visible_in_tree()); } } @@ -864,24 +853,25 @@ void ProjectManager::_load_recent_projects() { hb->set_meta("main_scene",main_scene); hb->set_meta("favorite",is_favorite); hb->connect("draw",this,"_panel_draw",varray(hb)); - hb->connect("input_event",this,"_panel_input",varray(hb)); + hb->connect("gui_input",this,"_panel_input",varray(hb)); hb->add_constant_override("separation",10*EDSCALE); VBoxContainer *favorite_box = memnew( VBoxContainer ); TextureButton *favorite = memnew( TextureButton ); favorite->set_normal_texture(favorite_icon); if (!is_favorite) - favorite->set_opacity(0.2); + favorite->set_modulate(Color(1,1,1,0.2)); favorite->set_v_size_flags(SIZE_EXPAND); favorite->connect("pressed",this,"_favorite_pressed",varray(hb)); favorite_box->add_child(favorite); hb->add_child(favorite_box); - TextureFrame *tf = memnew( TextureFrame ); + TextureRect *tf = memnew( TextureRect ); tf->set_texture(icon); hb->add_child(tf); VBoxContainer *vb = memnew(VBoxContainer); + vb->set_name("project"); hb->add_child(vb); Control *ec = memnew( Control ); ec->set_custom_minimum_size(Size2(0,1)); @@ -891,8 +881,9 @@ void ProjectManager::_load_recent_projects() { title->add_color_override("font_color",font_color); vb->add_child(title); Label *fpath = memnew( Label(path) ); + fpath->set_name("path"); vb->add_child(fpath); - fpath->set_opacity(0.5); + fpath->set_modulate(Color(1,1,1,0.5)); fpath->add_color_override("font_color",font_color); scroll_childs->add_child(hb); @@ -912,6 +903,43 @@ void ProjectManager::_load_recent_projects() { tabs->set_current_tab(0); } +void ProjectManager::_on_project_created(const String& dir) { + bool has_already=false; + for (int i=0;i<scroll_childs->get_child_count();i++) { + HBoxContainer *hb=scroll_childs->get_child(i)->cast_to<HBoxContainer>(); + Label *fpath=hb->get_node(NodePath("project/path"))->cast_to<Label>(); + if (fpath->get_text()==dir) { + has_already=true; + break; + } + } + if (has_already) { + _update_scroll_pos(dir); + } else { + _load_recent_projects(); + scroll->connect("draw", this, "_update_scroll_pos", varray(dir), CONNECT_ONESHOT); + } +} + +void ProjectManager::_update_scroll_pos(const String& dir) { + for (int i=0;i<scroll_childs->get_child_count();i++) { + HBoxContainer *hb=scroll_childs->get_child(i)->cast_to<HBoxContainer>(); + Label *fpath=hb->get_node(NodePath("project/path"))->cast_to<Label>(); + if (fpath->get_text()==dir) { + last_clicked=hb->get_meta("name"); + selected_list.clear(); + selected_list.insert(hb->get_meta("name"), hb->get_meta("main_scene")); + _update_project_buttons(); + int last_y_visible=scroll->get_v_scroll()+scroll->get_size().y; + int offset_diff=(hb->get_pos().y + hb->get_size().y)-last_y_visible; + + if (offset_diff>0) + scroll->set_v_scroll(scroll->get_v_scroll()+offset_diff); + break; + } + } +} + void ProjectManager::_open_project_confirm() { for (Map<String,String>::Element *E=selected_list.front(); E; E=E->next()) { @@ -972,7 +1000,7 @@ void ProjectManager::_run_project_confirm() { Error err = OS::get_singleton()->execute(exec,args,false,&pid); ERR_FAIL_COND(err); } - // get_scene()->quit(); do not quit + //get_scene()->quit(); do not quit } void ProjectManager::_run_project() { @@ -1102,7 +1130,7 @@ void ProjectManager::_install_project(const String& p_zip_path,const String& p_t npdialog->show_dialog(); } -void ProjectManager::_files_dropped(StringArray p_files, int p_screen) { +void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) { Set<String> folders_set; DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); for (int i = 0; i < p_files.size(); i++) { @@ -1111,7 +1139,7 @@ void ProjectManager::_files_dropped(StringArray p_files, int p_screen) { } memdelete(da); if (folders_set.size()>0) { - StringArray folders; + PoolStringArray folders; for (Set<String>::Element *E=folders_set.front();E;E=E->next()) { folders.append(E->get()); } @@ -1123,7 +1151,7 @@ void ProjectManager::_files_dropped(StringArray p_files, int p_screen) { dir->list_dir_begin(); String file = dir->get_next(); while(confirm && file!=String()) { - if (!da->current_is_dir() && file.ends_with("engine.cfg")) { + if (!dir->current_is_dir() && file.ends_with("engine.cfg")) { confirm = false; } file = dir->get_next(); @@ -1143,7 +1171,7 @@ void ProjectManager::_files_dropped(StringArray p_files, int p_screen) { } } -void ProjectManager::_scan_multiple_folders(StringArray p_files) +void ProjectManager::_scan_multiple_folders(PoolStringArray p_files) { for (int i = 0; i < p_files.size(); i++) { _scan_begin(p_files.get(i)); @@ -1152,25 +1180,27 @@ void ProjectManager::_scan_multiple_folders(StringArray p_files) void ProjectManager::_bind_methods() { - ObjectTypeDB::bind_method("_open_project",&ProjectManager::_open_project); - ObjectTypeDB::bind_method("_open_project_confirm",&ProjectManager::_open_project_confirm); - ObjectTypeDB::bind_method("_run_project",&ProjectManager::_run_project); - ObjectTypeDB::bind_method("_run_project_confirm",&ProjectManager::_run_project_confirm); - ObjectTypeDB::bind_method("_scan_projects",&ProjectManager::_scan_projects); - ObjectTypeDB::bind_method("_scan_begin",&ProjectManager::_scan_begin); - ObjectTypeDB::bind_method("_import_project",&ProjectManager::_import_project); - ObjectTypeDB::bind_method("_new_project",&ProjectManager::_new_project); - ObjectTypeDB::bind_method("_erase_project",&ProjectManager::_erase_project); - ObjectTypeDB::bind_method("_erase_project_confirm",&ProjectManager::_erase_project_confirm); - ObjectTypeDB::bind_method("_exit_dialog",&ProjectManager::_exit_dialog); - ObjectTypeDB::bind_method("_load_recent_projects",&ProjectManager::_load_recent_projects); - ObjectTypeDB::bind_method("_panel_draw",&ProjectManager::_panel_draw); - ObjectTypeDB::bind_method("_panel_input",&ProjectManager::_panel_input); - ObjectTypeDB::bind_method("_unhandled_input",&ProjectManager::_unhandled_input); - ObjectTypeDB::bind_method("_favorite_pressed",&ProjectManager::_favorite_pressed); - ObjectTypeDB::bind_method("_install_project",&ProjectManager::_install_project); - ObjectTypeDB::bind_method("_files_dropped",&ProjectManager::_files_dropped); - ObjectTypeDB::bind_method(_MD("_scan_multiple_folders", "files"),&ProjectManager::_scan_multiple_folders); + ClassDB::bind_method("_open_project",&ProjectManager::_open_project); + ClassDB::bind_method("_open_project_confirm",&ProjectManager::_open_project_confirm); + ClassDB::bind_method("_run_project",&ProjectManager::_run_project); + ClassDB::bind_method("_run_project_confirm",&ProjectManager::_run_project_confirm); + ClassDB::bind_method("_scan_projects",&ProjectManager::_scan_projects); + ClassDB::bind_method("_scan_begin",&ProjectManager::_scan_begin); + ClassDB::bind_method("_import_project",&ProjectManager::_import_project); + ClassDB::bind_method("_new_project",&ProjectManager::_new_project); + ClassDB::bind_method("_erase_project",&ProjectManager::_erase_project); + ClassDB::bind_method("_erase_project_confirm",&ProjectManager::_erase_project_confirm); + ClassDB::bind_method("_exit_dialog",&ProjectManager::_exit_dialog); + ClassDB::bind_method("_load_recent_projects",&ProjectManager::_load_recent_projects); + ClassDB::bind_method("_on_project_created",&ProjectManager::_on_project_created); + ClassDB::bind_method("_update_scroll_pos",&ProjectManager::_update_scroll_pos); + ClassDB::bind_method("_panel_draw",&ProjectManager::_panel_draw); + ClassDB::bind_method("_panel_input",&ProjectManager::_panel_input); + ClassDB::bind_method("_unhandled_input",&ProjectManager::_unhandled_input); + ClassDB::bind_method("_favorite_pressed",&ProjectManager::_favorite_pressed); + ClassDB::bind_method("_install_project",&ProjectManager::_install_project); + ClassDB::bind_method("_files_dropped",&ProjectManager::_files_dropped); + ClassDB::bind_method(_MD("_scan_multiple_folders", "files"),&ProjectManager::_scan_multiple_folders); } @@ -1185,7 +1215,7 @@ ProjectManager::ProjectManager() { EditorSettings::get_singleton()->set_optimize_save(false); //just write settings as they came { - int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode"); + int dpi_mode = EditorSettings::get_singleton()->get("interface/hidpi_mode"); if (dpi_mode==0) { editor_set_scale( OS::get_singleton()->get_screen_dpi(0) > 150 && OS::get_singleton()->get_screen_size(OS::get_singleton()->get_current_screen()).x>2000 ? 2.0 : 1.0 ); } else if (dpi_mode==1) { @@ -1199,7 +1229,7 @@ ProjectManager::ProjectManager() { } } - FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files")); + FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesytem/file_dialog/show_hidden_files")); set_area_as_parent_rect(); set_theme(create_editor_theme()); @@ -1223,7 +1253,7 @@ ProjectManager::ProjectManager() { String cp; cp.push_back(0xA9); cp.push_back(0); - OS::get_singleton()->set_window_title(_MKSTR(VERSION_NAME)+String(" - ")+TTR("Project Manager")+" - "+cp+" 2008-2016 Juan Linietsky, Ariel Manzur."); + OS::get_singleton()->set_window_title(_MKSTR(VERSION_NAME)+String(" - ")+TTR("Project Manager")+" - "+cp+" 2008-2017 Juan Linietsky, Ariel Manzur."); HBoxContainer *top_hb = memnew( HBoxContainer); vb->add_child(top_hb); @@ -1308,7 +1338,7 @@ ProjectManager::ProjectManager() { scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM); scan_dir->set_mode(FileDialog::MODE_OPEN_DIR); scan_dir->set_title(TTR("Select a Folder to Scan")); // must be after mode or it's overridden - scan_dir->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_path") ); + scan_dir->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_path") ); gui_base->add_child(scan_dir); scan_dir->connect("dir_selected",this,"_scan_begin"); @@ -1382,11 +1412,11 @@ ProjectManager::ProjectManager() { npdialog = memnew( NewProjectDialog ); gui_base->add_child(npdialog); - npdialog->connect("project_created", this,"_load_recent_projects"); + npdialog->connect("project_created", this,"_on_project_created"); _load_recent_projects(); - if ( EditorSettings::get_singleton()->get("global/autoscan_project_path") ) { - _scan_begin( EditorSettings::get_singleton()->get("global/autoscan_project_path") ); + if ( EditorSettings::get_singleton()->get("filesystem/directories/autoscan_project_path") ) { + _scan_begin( EditorSettings::get_singleton()->get("filesystem/directories/autoscan_project_path") ); } //get_ok()->set_text("Open"); @@ -1453,9 +1483,9 @@ void ProjectListFilter::_notification(int p_what) { void ProjectListFilter::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_command"),&ProjectListFilter::_command); - ObjectTypeDB::bind_method(_MD("_search_text_changed"), &ProjectListFilter::_search_text_changed); - ObjectTypeDB::bind_method(_MD("_filter_option_selected"), &ProjectListFilter::_filter_option_selected); + ClassDB::bind_method(_MD("_command"),&ProjectListFilter::_command); + ClassDB::bind_method(_MD("_search_text_changed"), &ProjectListFilter::_search_text_changed); + ClassDB::bind_method(_MD("_filter_option_selected"), &ProjectListFilter::_filter_option_selected); ADD_SIGNAL( MethodInfo("filter_changed") ); } diff --git a/tools/editor/project_manager.h b/tools/editor/project_manager.h index 46f7aea3a5..1fd8a301ea 100644 --- a/tools/editor/project_manager.h +++ b/tools/editor/project_manager.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ class NewProjectDialog; class ProjectListFilter; class ProjectManager : public Control { - OBJ_TYPE( ProjectManager, Control ); + GDCLASS( ProjectManager, Control ); Button *erase_btn; Button *open_btn; @@ -85,6 +85,8 @@ class ProjectManager : public Control { void _scan_begin(const String& p_base); void _load_recent_projects(); + void _on_project_created(const String& dir); + void _update_scroll_pos(const String& dir); void _scan_dir(DirAccess *da,float pos, float total,List<String> *r_projects); void _install_project(const String& p_zip_path,const String& p_title); @@ -93,8 +95,8 @@ class ProjectManager : public Control { void _panel_input(const InputEvent& p_ev,Node *p_hb); void _unhandled_input(const InputEvent& p_ev); void _favorite_pressed(Node *p_hb); - void _files_dropped(StringArray p_files, int p_screen); - void _scan_multiple_folders(StringArray p_files); + void _files_dropped(PoolStringArray p_files, int p_screen); + void _scan_multiple_folders(PoolStringArray p_files); protected: @@ -107,7 +109,7 @@ public: class ProjectListFilter : public HBoxContainer { - OBJ_TYPE( ProjectListFilter, HBoxContainer ); + GDCLASS( ProjectListFilter, HBoxContainer ); private: diff --git a/tools/editor/project_settings.cpp b/tools/editor/project_settings.cpp index 02d95abfa2..15d03b8a2b 100644 --- a/tools/editor/project_settings.cpp +++ b/tools/editor/project_settings.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "project_settings.h" + #include "scene/gui/tab_container.h" #include "globals.h" #include "os/keyboard.h" @@ -74,7 +75,7 @@ void ProjectSettings::_notification(int p_what) { if (p_what==NOTIFICATION_ENTER_TREE) { - globals_editor->edit(Globals::get_singleton()); + globals_editor->edit(GlobalConfig::get_singleton()); search_button->set_icon(get_icon("Zoom","EditorIcons")); clear_button->set_icon(get_icon("Close","EditorIcons")); @@ -82,8 +83,8 @@ void ProjectSettings::_notification(int p_what) { translation_list->connect("button_pressed",this,"_translation_delete"); _update_actions(); popup_add->add_icon_item(get_icon("Keyboard","EditorIcons"),TTR("Key "),InputEvent::KEY);//"Key " - because the word 'key' has already been used as a key animation - popup_add->add_icon_item(get_icon("JoyButton","EditorIcons"),TTR("Joy Button"),InputEvent::JOYSTICK_BUTTON); - popup_add->add_icon_item(get_icon("JoyAxis","EditorIcons"),TTR("Joy Axis"),InputEvent::JOYSTICK_MOTION); + popup_add->add_icon_item(get_icon("JoyButton","EditorIcons"),TTR("Joy Button"),InputEvent::JOYPAD_BUTTON); + popup_add->add_icon_item(get_icon("JoyAxis","EditorIcons"),TTR("Joy Axis"),InputEvent::JOYPAD_MOTION); popup_add->add_icon_item(get_icon("Mouse","EditorIcons"),TTR("Mouse Button"),InputEvent::MOUSE_BUTTON); List<String> tfn; @@ -136,7 +137,7 @@ void ProjectSettings::_action_edited() { String action_prop="input/"+new_name; - if (Globals::get_singleton()->has(action_prop)) { + if (GlobalConfig::get_singleton()->has(action_prop)) { ti->set_text(0,old_name); add_at="input/"+old_name; @@ -146,20 +147,17 @@ void ProjectSettings::_action_edited() { return; } - int order = Globals::get_singleton()->get_order(add_at); - Array va = Globals::get_singleton()->get(add_at); - bool persisting = Globals::get_singleton()->is_persisting(add_at); + int order = GlobalConfig::get_singleton()->get_order(add_at); + Array va = GlobalConfig::get_singleton()->get(add_at); setting=true; undo_redo->create_action(TTR("Rename Input Action Event")); - undo_redo->add_do_method(Globals::get_singleton(),"clear",add_at); - undo_redo->add_do_method(Globals::get_singleton(),"set",action_prop,va); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",action_prop,persisting); - undo_redo->add_do_method(Globals::get_singleton(),"set_order",action_prop,order); - undo_redo->add_undo_method(Globals::get_singleton(),"clear",action_prop); - undo_redo->add_undo_method(Globals::get_singleton(),"set",add_at,va); - undo_redo->add_undo_method(Globals::get_singleton(),"set_persisting",add_at,persisting); - undo_redo->add_undo_method(Globals::get_singleton(),"set_order",add_at,order); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"clear",add_at); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",action_prop,va); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"set_order",action_prop,order); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"clear",action_prop); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",add_at,va); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set_order",add_at,order); undo_redo->add_do_method(this,"_update_actions"); undo_redo->add_undo_method(this,"_update_actions"); undo_redo->add_do_method(this,"_settings_changed"); @@ -179,9 +177,9 @@ void ProjectSettings::_device_input_add() { InputEvent ie; String name=add_at; - Variant old_val = Globals::get_singleton()->get(name); + Variant old_val = GlobalConfig::get_singleton()->get(name); Array arr=old_val; - ie.device=device_id->get_val(); + ie.device=device_id->get_value(); ie.type=add_type; @@ -201,7 +199,7 @@ void ProjectSettings::_device_input_add() { } } break; - case InputEvent::JOYSTICK_MOTION: { + case InputEvent::JOYPAD_MOTION: { ie.joy_motion.axis = device_index->get_selected()>>1; ie.joy_motion.axis_value = device_index->get_selected()&1?1:-1; @@ -210,20 +208,20 @@ void ProjectSettings::_device_input_add() { for(int i=0;i<arr.size();i++) { InputEvent aie=arr[i]; - if (aie.device == ie.device && aie.type==InputEvent::JOYSTICK_MOTION && aie.joy_motion.axis==ie.joy_motion.axis && aie.joy_motion.axis_value==ie.joy_motion.axis_value) { + if (aie.device == ie.device && aie.type==InputEvent::JOYPAD_MOTION && aie.joy_motion.axis==ie.joy_motion.axis && aie.joy_motion.axis_value==ie.joy_motion.axis_value) { return; } } } break; - case InputEvent::JOYSTICK_BUTTON: { + case InputEvent::JOYPAD_BUTTON: { ie.joy_button.button_index=device_index->get_selected(); for(int i=0;i<arr.size();i++) { InputEvent aie=arr[i]; - if (aie.device == ie.device && aie.type==InputEvent::JOYSTICK_BUTTON && aie.joy_button.button_index==ie.joy_button.button_index) { + if (aie.device == ie.device && aie.type==InputEvent::JOYPAD_BUTTON && aie.joy_button.button_index==ie.joy_button.button_index) { return; } } @@ -236,9 +234,8 @@ void ProjectSettings::_device_input_add() { arr.push_back(ie); undo_redo->create_action(TTR("Add Input Action Event")); - undo_redo->add_do_method(Globals::get_singleton(),"set",name,arr); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",name,true); - undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,arr); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val); undo_redo->add_do_method(this,"_update_actions"); undo_redo->add_undo_method(this,"_update_actions"); undo_redo->add_do_method(this,"_settings_changed"); @@ -260,7 +257,7 @@ void ProjectSettings::_press_a_key_confirm() { ie.key.mod=last_wait_for_key.key.mod; String name=add_at; - Variant old_val = Globals::get_singleton()->get(name); + Variant old_val = GlobalConfig::get_singleton()->get(name); Array arr=old_val; for(int i=0;i<arr.size();i++) { @@ -274,9 +271,8 @@ void ProjectSettings::_press_a_key_confirm() { arr.push_back(ie); undo_redo->create_action(TTR("Add Input Action Event")); - undo_redo->add_do_method(Globals::get_singleton(),"set",name,arr); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",name,true); - undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,arr); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val); undo_redo->add_do_method(this,"_update_actions"); undo_redo->add_undo_method(this,"_update_actions"); undo_redo->add_do_method(this,"_settings_changed"); @@ -352,7 +348,7 @@ void ProjectSettings::_add_item(int p_item){ } break; case InputEvent::MOUSE_BUTTON: { - device_id->set_val(0); + device_id->set_value(0); device_index_label->set_text(TTR("Mouse Button Index:")); device_index->clear(); device_index->add_item(TTR("Left Button")); @@ -366,10 +362,10 @@ void ProjectSettings::_add_item(int p_item){ device_index->add_item(TTR("Button 9")); device_input->popup_centered_minsize(Size2(350,95)); } break; - case InputEvent::JOYSTICK_MOTION: { + case InputEvent::JOYPAD_MOTION: { - device_id->set_val(0); - device_index_label->set_text(TTR("Joystick Axis Index:")); + device_id->set_value(0); + device_index_label->set_text(TTR("Joypad Axis Index:")); device_index->clear(); for(int i=0;i<JOY_AXIS_MAX*2;i++) { @@ -379,10 +375,10 @@ void ProjectSettings::_add_item(int p_item){ device_input->popup_centered_minsize(Size2(350,95)); } break; - case InputEvent::JOYSTICK_BUTTON: { + case InputEvent::JOYPAD_BUTTON: { - device_id->set_val(3); - device_index_label->set_text(TTR("Joystick Button Index:")); + device_id->set_value(3); + device_index_label->set_text(TTR("Joypad Button Index:")); device_index->clear(); for(int i=0;i<JOY_BUTTON_MAX;i++) { @@ -423,14 +419,13 @@ void ProjectSettings::_action_button_pressed(Object* p_obj, int p_column,int p_i //remove main thing String name="input/"+ti->get_text(0); - Variant old_val = Globals::get_singleton()->get(name); - int order=Globals::get_singleton()->get_order(name); + Variant old_val = GlobalConfig::get_singleton()->get(name); + int order=GlobalConfig::get_singleton()->get_order(name); undo_redo->create_action(TTR("Add Input Action")); - undo_redo->add_do_method(Globals::get_singleton(),"clear",name); - undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val); - undo_redo->add_undo_method(Globals::get_singleton(),"set_order",name,order); - undo_redo->add_undo_method(Globals::get_singleton(),"set_persisting",name,Globals::get_singleton()->is_persisting(name)); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"clear",name); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set_order",name,order); undo_redo->add_do_method(this,"_update_actions"); undo_redo->add_undo_method(this,"_update_actions"); undo_redo->add_do_method(this,"_settings_changed"); @@ -440,7 +435,7 @@ void ProjectSettings::_action_button_pressed(Object* p_obj, int p_column,int p_i } else { //remove action String name="input/"+ti->get_parent()->get_text(0); - Variant old_val = Globals::get_singleton()->get(name); + Variant old_val = GlobalConfig::get_singleton()->get(name); int idx = ti->get_metadata(0); Array va = old_val; @@ -456,8 +451,8 @@ void ProjectSettings::_action_button_pressed(Object* p_obj, int p_column,int p_i undo_redo->create_action(TTR("Erase Input Action Event")); - undo_redo->add_do_method(Globals::get_singleton(),"set",name,va); - undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,va); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val); undo_redo->add_do_method(this,"_update_actions"); undo_redo->add_undo_method(this,"_update_actions"); undo_redo->add_do_method(this,"_settings_changed"); @@ -480,7 +475,7 @@ void ProjectSettings::_update_actions() { input_editor->set_hide_root(true); List<PropertyInfo> props; - Globals::get_singleton()->get_property_list(&props); + GlobalConfig::get_singleton()->get_property_list(&props); for(List<PropertyInfo>::Element *E=props.front();E;E=E->next()) { @@ -496,7 +491,7 @@ void ProjectSettings::_update_actions() { //item->set_cell_mode(0,TreeItem::CELL_MODE_CHECK); item->set_text(0,name); item->add_button(0,get_icon("Add","EditorIcons"),1); - if (!Globals::get_singleton()->get_input_presets().find(pi.name)) { + if (!GlobalConfig::get_singleton()->get_input_presets().find(pi.name)) { item->add_button(0,get_icon("Remove","EditorIcons"),2); item->set_editable(0,true); } @@ -504,7 +499,7 @@ void ProjectSettings::_update_actions() { //item->set_checked(0,pi.usage&PROPERTY_USAGE_CHECKED); - Array actions=Globals::get_singleton()->get(pi.name); + Array actions=GlobalConfig::get_singleton()->get(pi.name); for(int i=0;i<actions.size();i++) { @@ -532,7 +527,7 @@ void ProjectSettings::_update_actions() { action->set_icon(0,get_icon("Keyboard","EditorIcons")); } break; - case InputEvent::JOYSTICK_BUTTON: { + case InputEvent::JOYPAD_BUTTON: { String str = TTR("Device")+" "+itos(ie.device)+", "+TTR("Button")+" "+itos(ie.joy_button.button_index); if (ie.joy_button.button_index>=0 && ie.joy_button.button_index<JOY_BUTTON_MAX) @@ -558,7 +553,7 @@ void ProjectSettings::_update_actions() { action->set_text(0,str); action->set_icon(0,get_icon("Mouse","EditorIcons")); } break; - case InputEvent::JOYSTICK_MOTION: { + case InputEvent::JOYPAD_MOTION: { int ax = ie.joy_motion.axis; int n = 2*ax + (ie.joy_motion.axis_value<0 ? 0:1); @@ -636,13 +631,12 @@ void ProjectSettings::_item_add() { undo_redo->create_action("Add Global Property"); - undo_redo->add_do_property(Globals::get_singleton(), name, value); - undo_redo->add_do_method(Globals::get_singleton(), "set_persisting", name, true); + undo_redo->add_do_property(GlobalConfig::get_singleton(), name, value); - if (Globals::get_singleton()->has(name)) { - undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name)); + if (GlobalConfig::get_singleton()->has(name)) { + undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name)); } else { - undo_redo->add_undo_property(Globals::get_singleton(), name, Variant()); + undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, Variant()); } undo_redo->add_do_method(globals_editor, "update_category_list"); @@ -669,10 +663,9 @@ void ProjectSettings::_item_del() { undo_redo->create_action("Delete Global Property"); - undo_redo->add_do_property(Globals::get_singleton(), name, Variant()); + undo_redo->add_do_property(GlobalConfig::get_singleton(), name, Variant()); - undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name)); - undo_redo->add_undo_method(Globals::get_singleton(), "set_persisting", name, Globals::get_singleton()->is_persisting(name)); + undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name)); undo_redo->add_do_method(globals_editor, "update_category_list"); undo_redo->add_undo_method(globals_editor, "update_category_list"); @@ -699,7 +692,7 @@ void ProjectSettings::_action_add() { return; } - if (Globals::get_singleton()->has("input/"+action)) { + if (GlobalConfig::get_singleton()->has("input/"+action)) { message->set_text(vformat(TTR("Action '%s' already exists!"),action)); message->popup_centered(Size2(300,100)); return; @@ -708,9 +701,8 @@ void ProjectSettings::_action_add() { Array va; String name = "input/"+action; undo_redo->create_action(TTR("Add Input Action Event")); - undo_redo->add_do_method(Globals::get_singleton(),"set",name,va); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",name,true); - undo_redo->add_undo_method(Globals::get_singleton(),"clear",name); + undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,va); + undo_redo->add_undo_method(GlobalConfig::get_singleton(),"clear",name); undo_redo->add_do_method(this,"_update_actions"); undo_redo->add_undo_method(this,"_update_actions"); undo_redo->add_do_method(this,"_settings_changed"); @@ -737,23 +729,14 @@ void ProjectSettings::_action_add() { void ProjectSettings::_item_checked(const String& p_item, bool p_check) { - undo_redo->create_action(TTR("Toggle Persisting")); - String full_item = globals_editor->get_full_item_path(p_item); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",full_item,p_check); - undo_redo->add_undo_method(Globals::get_singleton(),"set_persisting",full_item,!p_check); - undo_redo->add_do_method(this,"_settings_changed"); - undo_redo->add_undo_method(this,"_settings_changed"); - undo_redo->add_do_method(globals_editor->get_property_editor(),"update_tree"); - undo_redo->add_undo_method(globals_editor->get_property_editor(),"update_tree"); - undo_redo->commit_action(); } void ProjectSettings::_save() { - Error err = Globals::get_singleton()->save(); + Error err = GlobalConfig::get_singleton()->save(); message->set_text(err!=OK?TTR("Error saving settings."):TTR("Settings saved OK.")); message->popup_centered(Size2(300,100)); } @@ -764,21 +747,6 @@ void ProjectSettings::_settings_prop_edited(const String& p_name) { String full_item = globals_editor->get_full_item_path(p_name); - if (!Globals::get_singleton()->is_persisting(full_item)) { - Globals::get_singleton()->set_persisting(full_item,true); - - { - //small usability workaround, if anything related to resolution scaling or size is modified, change all of them together - if (full_item=="display/width" || full_item=="display/height" || full_item=="display/stretch_mode") { - Globals::get_singleton()->set_persisting("display/height",true); - Globals::get_singleton()->set_persisting("display/width",true); - } - } - - -// globals_editor->update_property(p_name); - globals_editor->get_property_editor()->update_tree(); - } _settings_changed(); } @@ -810,12 +778,12 @@ void ProjectSettings::_copy_to_platform(int p_which) { } String name = catname+"/"+propname; - Variant value=Globals::get_singleton()->get(name); + Variant value=GlobalConfig::get_singleton()->get(name); - catname+="."+popup_platform->get_popup()->get_item_text(p_which);; + catname+="."+popup_platform->get_popup()->get_item_text(p_which); name = catname+"/"+propname; - Globals::get_singleton()->set(name,value); + GlobalConfig::get_singleton()->set(name,value); globals_editor->get_property_editor()->update_tree(); } @@ -828,7 +796,7 @@ void ProjectSettings::add_translation(const String& p_translation) { void ProjectSettings::_translation_add(const String& p_path) { - StringArray translations = Globals::get_singleton()->get("locale/translations"); + PoolStringArray translations = GlobalConfig::get_singleton()->get("locale/translations"); for(int i=0;i<translations.size();i++) { @@ -839,9 +807,8 @@ void ProjectSettings::_translation_add(const String& p_path) { translations.push_back(p_path); undo_redo->create_action(TTR("Add Translation")); - undo_redo->add_do_property(Globals::get_singleton(),"locale/translations",translations); - undo_redo->add_undo_property(Globals::get_singleton(),"locale/translations",Globals::get_singleton()->get("locale/translations")); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translations",true); + undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translations",translations); + undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translations",GlobalConfig::get_singleton()->get("locale/translations")); undo_redo->add_do_method(this,"_update_translations"); undo_redo->add_undo_method(this,"_update_translations"); undo_redo->add_do_method(this,"_settings_changed"); @@ -862,15 +829,15 @@ void ProjectSettings::_translation_delete(Object *p_item,int p_column, int p_but int idx=ti->get_metadata(0); - StringArray translations = Globals::get_singleton()->get("locale/translations"); + PoolStringArray translations = GlobalConfig::get_singleton()->get("locale/translations"); ERR_FAIL_INDEX(idx,translations.size()); translations.remove(idx); undo_redo->create_action(TTR("Remove Translation")); - undo_redo->add_do_property(Globals::get_singleton(),"locale/translations",translations); - undo_redo->add_undo_property(Globals::get_singleton(),"locale/translations",Globals::get_singleton()->get("locale/translations")); + undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translations",translations); + undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translations",GlobalConfig::get_singleton()->get("locale/translations")); undo_redo->add_do_method(this,"_update_translations"); undo_redo->add_undo_method(this,"_update_translations"); undo_redo->add_do_method(this,"_settings_changed"); @@ -891,20 +858,19 @@ void ProjectSettings::_translation_res_add(const String& p_path){ Variant prev; Dictionary remaps; - if (Globals::get_singleton()->has("locale/translation_remaps")) { - remaps = Globals::get_singleton()->get("locale/translation_remaps"); + if (GlobalConfig::get_singleton()->has("locale/translation_remaps")) { + remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps"); prev=remaps; } if (remaps.has(p_path)) return; //pointless already has it - remaps[p_path]=StringArray(); + remaps[p_path]=PoolStringArray(); undo_redo->create_action(TTR("Add Remapped Path")); - undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true); - undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",prev); + undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps); + undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",prev); undo_redo->add_do_method(this,"_update_translations"); undo_redo->add_undo_method(this,"_update_translations"); undo_redo->add_do_method(this,"_settings_changed"); @@ -920,9 +886,9 @@ void ProjectSettings::_translation_res_option_file_open(){ } void ProjectSettings::_translation_res_option_add(const String& p_path) { - ERR_FAIL_COND(!Globals::get_singleton()->has("locale/translation_remaps")); + ERR_FAIL_COND(!GlobalConfig::get_singleton()->has("locale/translation_remaps")); - Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps"); TreeItem *k = translation_remap->get_selected(); ERR_FAIL_COND(!k); @@ -930,15 +896,14 @@ void ProjectSettings::_translation_res_option_add(const String& p_path) { String key = k->get_metadata(0); ERR_FAIL_COND(!remaps.has(key)); - StringArray r = remaps[key]; + PoolStringArray r = remaps[key]; r.push_back(p_path+":"+"en"); remaps[key]=r; undo_redo->create_action(TTR("Resource Remap Add Remap")); - undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true); - undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps); + undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps")); undo_redo->add_do_method(this,"_update_translations"); undo_redo->add_undo_method(this,"_update_translations"); undo_redo->add_do_method(this,"_settings_changed"); @@ -963,10 +928,10 @@ void ProjectSettings::_translation_res_option_changed() { if (updating_translations) return; - if (!Globals::get_singleton()->has("locale/translation_remaps")) + if (!GlobalConfig::get_singleton()->has("locale/translation_remaps")) return; - Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps"); TreeItem *k = translation_remap->get_selected(); ERR_FAIL_COND(!k); @@ -984,16 +949,15 @@ void ProjectSettings::_translation_res_option_changed() { ERR_FAIL_COND(!remaps.has(key)); - StringArray r = remaps[key]; + PoolStringArray r = remaps[key]; ERR_FAIL_INDEX(idx,r.size()); r.set(idx,path+":"+langs[which]); remaps[key]=r; updating_translations=true; undo_redo->create_action(TTR("Change Resource Remap Language")); - undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true); - undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps); + undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps")); undo_redo->add_do_method(this,"_update_translations"); undo_redo->add_undo_method(this,"_update_translations"); undo_redo->add_do_method(this,"_settings_changed"); @@ -1010,10 +974,10 @@ void ProjectSettings::_translation_res_delete(Object *p_item,int p_column, int p if (updating_translations) return; - if (!Globals::get_singleton()->has("locale/translation_remaps")) + if (!GlobalConfig::get_singleton()->has("locale/translation_remaps")) return; - Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps"); TreeItem *k = p_item->cast_to<TreeItem>(); @@ -1023,9 +987,8 @@ void ProjectSettings::_translation_res_delete(Object *p_item,int p_column, int p remaps.erase(key); undo_redo->create_action(TTR("Remove Resource Remap")); - undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true); - undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps); + undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps")); undo_redo->add_do_method(this,"_update_translations"); undo_redo->add_undo_method(this,"_update_translations"); undo_redo->add_do_method(this,"_settings_changed"); @@ -1038,10 +1001,10 @@ void ProjectSettings::_translation_res_option_delete(Object *p_item,int p_column if (updating_translations) return; - if (!Globals::get_singleton()->has("locale/translation_remaps")) + if (!GlobalConfig::get_singleton()->has("locale/translation_remaps")) return; - Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps"); TreeItem *k = translation_remap->get_selected(); ERR_FAIL_COND(!k); @@ -1052,16 +1015,15 @@ void ProjectSettings::_translation_res_option_delete(Object *p_item,int p_column int idx = ed->get_metadata(0); ERR_FAIL_COND(!remaps.has(key)); - StringArray r = remaps[key]; + PoolStringArray r = remaps[key]; ERR_FAIL_INDEX(idx,remaps.size()); r.remove(idx); remaps[key]=r; undo_redo->create_action(TTR("Remove Resource Remap Option")); - undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps); - undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true); - undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps); + undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps")); undo_redo->add_do_method(this,"_update_translations"); undo_redo->add_undo_method(this,"_update_translations"); undo_redo->add_do_method(this,"_settings_changed"); @@ -1082,9 +1044,9 @@ void ProjectSettings::_update_translations() { translation_list->clear(); TreeItem *root = translation_list->create_item(NULL); translation_list->set_hide_root(true); - if (Globals::get_singleton()->has("locale/translations")) { + if (GlobalConfig::get_singleton()->has("locale/translations")) { - StringArray translations = Globals::get_singleton()->get("locale/translations"); + PoolStringArray translations = GlobalConfig::get_singleton()->get("locale/translations"); for(int i=0;i<translations.size();i++) { TreeItem *t = translation_list->create_item(root); @@ -1121,9 +1083,9 @@ void ProjectSettings::_update_translations() { langnames+=names[i]; } - if (Globals::get_singleton()->has("locale/translation_remaps")) { + if (GlobalConfig::get_singleton()->has("locale/translation_remaps")) { - Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps"); List<Variant> rk; remaps.get_key_list(&rk); Vector<String> keys; @@ -1144,7 +1106,7 @@ void ProjectSettings::_update_translations() { t->select(0); translation_res_option_add_button->set_disabled(false); - StringArray selected = remaps[keys[i]]; + PoolStringArray selected = remaps[keys[i]]; for(int j=0;j<selected.size();j++) { String s = selected[j]; @@ -1213,41 +1175,41 @@ void ProjectSettings::set_plugins_page() { void ProjectSettings::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_item_selected"),&ProjectSettings::_item_selected); - ObjectTypeDB::bind_method(_MD("_item_add"),&ProjectSettings::_item_add); - ObjectTypeDB::bind_method(_MD("_item_adds"),&ProjectSettings::_item_adds); - ObjectTypeDB::bind_method(_MD("_item_del"),&ProjectSettings::_item_del); - ObjectTypeDB::bind_method(_MD("_item_checked"),&ProjectSettings::_item_checked); - ObjectTypeDB::bind_method(_MD("_save"),&ProjectSettings::_save); - ObjectTypeDB::bind_method(_MD("_action_add"),&ProjectSettings::_action_add); - ObjectTypeDB::bind_method(_MD("_action_adds"),&ProjectSettings::_action_adds); - ObjectTypeDB::bind_method(_MD("_action_selected"),&ProjectSettings::_action_selected); - ObjectTypeDB::bind_method(_MD("_action_edited"),&ProjectSettings::_action_edited); - ObjectTypeDB::bind_method(_MD("_action_button_pressed"),&ProjectSettings::_action_button_pressed); - ObjectTypeDB::bind_method(_MD("_update_actions"),&ProjectSettings::_update_actions); - ObjectTypeDB::bind_method(_MD("_wait_for_key"),&ProjectSettings::_wait_for_key); - ObjectTypeDB::bind_method(_MD("_add_item"),&ProjectSettings::_add_item); - ObjectTypeDB::bind_method(_MD("_device_input_add"),&ProjectSettings::_device_input_add); - ObjectTypeDB::bind_method(_MD("_press_a_key_confirm"),&ProjectSettings::_press_a_key_confirm); - ObjectTypeDB::bind_method(_MD("_settings_prop_edited"),&ProjectSettings::_settings_prop_edited); - ObjectTypeDB::bind_method(_MD("_copy_to_platform"),&ProjectSettings::_copy_to_platform); - ObjectTypeDB::bind_method(_MD("_update_translations"),&ProjectSettings::_update_translations); - ObjectTypeDB::bind_method(_MD("_translation_delete"),&ProjectSettings::_translation_delete); - ObjectTypeDB::bind_method(_MD("_settings_changed"),&ProjectSettings::_settings_changed); - ObjectTypeDB::bind_method(_MD("_translation_add"),&ProjectSettings::_translation_add); - ObjectTypeDB::bind_method(_MD("_translation_file_open"),&ProjectSettings::_translation_file_open); - - ObjectTypeDB::bind_method(_MD("_translation_res_add"),&ProjectSettings::_translation_res_add); - ObjectTypeDB::bind_method(_MD("_translation_res_file_open"),&ProjectSettings::_translation_res_file_open); - ObjectTypeDB::bind_method(_MD("_translation_res_option_add"),&ProjectSettings::_translation_res_option_add); - ObjectTypeDB::bind_method(_MD("_translation_res_option_file_open"),&ProjectSettings::_translation_res_option_file_open); - ObjectTypeDB::bind_method(_MD("_translation_res_select"),&ProjectSettings::_translation_res_select); - ObjectTypeDB::bind_method(_MD("_translation_res_option_changed"),&ProjectSettings::_translation_res_option_changed); - ObjectTypeDB::bind_method(_MD("_translation_res_delete"),&ProjectSettings::_translation_res_delete); - ObjectTypeDB::bind_method(_MD("_translation_res_option_delete"),&ProjectSettings::_translation_res_option_delete); - - ObjectTypeDB::bind_method(_MD("_clear_search_box"),&ProjectSettings::_clear_search_box); - ObjectTypeDB::bind_method(_MD("_toggle_search_bar"),&ProjectSettings::_toggle_search_bar); + ClassDB::bind_method(_MD("_item_selected"),&ProjectSettings::_item_selected); + ClassDB::bind_method(_MD("_item_add"),&ProjectSettings::_item_add); + ClassDB::bind_method(_MD("_item_adds"),&ProjectSettings::_item_adds); + ClassDB::bind_method(_MD("_item_del"),&ProjectSettings::_item_del); + ClassDB::bind_method(_MD("_item_checked"),&ProjectSettings::_item_checked); + ClassDB::bind_method(_MD("_save"),&ProjectSettings::_save); + ClassDB::bind_method(_MD("_action_add"),&ProjectSettings::_action_add); + ClassDB::bind_method(_MD("_action_adds"),&ProjectSettings::_action_adds); + ClassDB::bind_method(_MD("_action_selected"),&ProjectSettings::_action_selected); + ClassDB::bind_method(_MD("_action_edited"),&ProjectSettings::_action_edited); + ClassDB::bind_method(_MD("_action_button_pressed"),&ProjectSettings::_action_button_pressed); + ClassDB::bind_method(_MD("_update_actions"),&ProjectSettings::_update_actions); + ClassDB::bind_method(_MD("_wait_for_key"),&ProjectSettings::_wait_for_key); + ClassDB::bind_method(_MD("_add_item"),&ProjectSettings::_add_item); + ClassDB::bind_method(_MD("_device_input_add"),&ProjectSettings::_device_input_add); + ClassDB::bind_method(_MD("_press_a_key_confirm"),&ProjectSettings::_press_a_key_confirm); + ClassDB::bind_method(_MD("_settings_prop_edited"),&ProjectSettings::_settings_prop_edited); + ClassDB::bind_method(_MD("_copy_to_platform"),&ProjectSettings::_copy_to_platform); + ClassDB::bind_method(_MD("_update_translations"),&ProjectSettings::_update_translations); + ClassDB::bind_method(_MD("_translation_delete"),&ProjectSettings::_translation_delete); + ClassDB::bind_method(_MD("_settings_changed"),&ProjectSettings::_settings_changed); + ClassDB::bind_method(_MD("_translation_add"),&ProjectSettings::_translation_add); + ClassDB::bind_method(_MD("_translation_file_open"),&ProjectSettings::_translation_file_open); + + ClassDB::bind_method(_MD("_translation_res_add"),&ProjectSettings::_translation_res_add); + ClassDB::bind_method(_MD("_translation_res_file_open"),&ProjectSettings::_translation_res_file_open); + ClassDB::bind_method(_MD("_translation_res_option_add"),&ProjectSettings::_translation_res_option_add); + ClassDB::bind_method(_MD("_translation_res_option_file_open"),&ProjectSettings::_translation_res_option_file_open); + ClassDB::bind_method(_MD("_translation_res_select"),&ProjectSettings::_translation_res_select); + ClassDB::bind_method(_MD("_translation_res_option_changed"),&ProjectSettings::_translation_res_option_changed); + ClassDB::bind_method(_MD("_translation_res_delete"),&ProjectSettings::_translation_res_delete); + ClassDB::bind_method(_MD("_translation_res_option_delete"),&ProjectSettings::_translation_res_option_delete); + + ClassDB::bind_method(_MD("_clear_search_box"),&ProjectSettings::_clear_search_box); + ClassDB::bind_method(_MD("_toggle_search_bar"),&ProjectSettings::_toggle_search_bar); } @@ -1262,7 +1224,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { tab_container = memnew( TabContainer ); add_child(tab_container); - set_child_rect(tab_container); + //set_child_rect(tab_container); //tab_container->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN, 15 ); //tab_container->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END, 15 ); @@ -1347,6 +1309,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { globals_editor = memnew( SectionedPropertyEditor ); props_base->add_child(globals_editor); + globals_editor->get_property_editor()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo()); //globals_editor->hide_top_label(); globals_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL); globals_editor->get_property_editor()->register_text_enter(search_box); @@ -1389,18 +1352,18 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { } - popup_platform->get_popup()->connect("item_pressed",this,"_copy_to_platform"); + popup_platform->get_popup()->connect("id_pressed",this,"_copy_to_platform"); get_ok()->set_text(TTR("Close")); set_hide_on_ok(true); message = memnew( ConfirmationDialog ); add_child(message); -// message->get_cancel()->hide(); + //message->get_cancel()->hide(); message->set_hide_on_ok(true); Control *input_base = memnew( Control ); input_base->set_name(TTR("Input Map")); - input_base->set_area_as_parent_rect();; + input_base->set_area_as_parent_rect(); tab_container->add_child(input_base); VBoxContainer *vbc = memnew( VBoxContainer ); @@ -1437,7 +1400,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { input_editor->connect("button_pressed",this,"_action_button_pressed"); popup_add = memnew( PopupMenu ); add_child(popup_add); - popup_add->connect("item_pressed",this,"_add_item"); + popup_add->connect("id_pressed",this,"_add_item"); press_a_key = memnew( ConfirmationDialog ); press_a_key->set_focus_mode(FOCUS_ALL); @@ -1451,7 +1414,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { l->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_BEGIN,30); press_a_key_label=l; press_a_key->add_child(l); - press_a_key->connect("input_event",this,"_wait_for_key"); + press_a_key->connect("gui_input",this,"_wait_for_key"); press_a_key->connect("confirmed",this,"_press_a_key_confirm"); @@ -1462,7 +1425,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { hbc = memnew( HBoxContainer ); device_input->add_child(hbc); - device_input->set_child_rect(hbc); + //device_input->set_child_rect(hbc); VBoxContainer *vbc_left = memnew( VBoxContainer ); hbc->add_child(vbc_left); @@ -1472,7 +1435,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { vbc_left->add_child(l); device_id = memnew( SpinBox ); - device_id->set_val(0); + device_id->set_value(0); vbc_left->add_child(device_id); VBoxContainer *vbc_right = memnew( VBoxContainer ); @@ -1606,7 +1569,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { timer = memnew( Timer ); timer->set_wait_time(1.5); - timer->connect("timeout",Globals::get_singleton(),"save"); + timer->connect("timeout",GlobalConfig::get_singleton(),"save"); timer->set_one_shot(true); add_child(timer); diff --git a/tools/editor/project_settings.h b/tools/editor/project_settings.h index 61ad094d00..bb925a5fd9 100644 --- a/tools/editor/project_settings.h +++ b/tools/editor/project_settings.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ //#include "project_export_settings.h" class ProjectSettings : public AcceptDialog { - OBJ_TYPE( ProjectSettings, AcceptDialog ); + GDCLASS( ProjectSettings, AcceptDialog ); TabContainer *tab_container; diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp index ef6b1aa47c..ab850ba1a7 100644 --- a/tools/editor/property_editor.cpp +++ b/tools/editor/property_editor.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,10 +27,11 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "property_editor.h" + #include "scene/gui/label.h" #include "io/resource_loader.h" #include "io/image_loader.h" -#include "object_type_db.h" +#include "class_db.h" #include "print_string.h" #include "globals.h" #include "scene/resources/font.h" @@ -47,6 +48,7 @@ #include "editor_file_system.h" #include "create_dialog.h" #include "property_selector.h" +#include "globals.h" void CustomPropertyEditor::_notification(int p_what) { @@ -173,9 +175,9 @@ void CustomPropertyEditor::_menu_option(int p_which) { propvalues.push_back(p); } - String orig_type = res_orig->get_type(); + String orig_type = res_orig->get_class(); - Object *inst = ObjectTypeDB::instance( orig_type ); + Object *inst = ClassDB::instance( orig_type ); Ref<Resource> res = Ref<Resource>( inst->cast_to<Resource>() ); @@ -226,15 +228,26 @@ void CustomPropertyEditor::_menu_option(int p_which) { ERR_FAIL_COND( inheritors_array.empty() ); + + String intype=inheritors_array[p_which-TYPE_BASE_ID]; - Object *obj = ObjectTypeDB::instance(intype); + if (intype=="ViewportTexture") { + + scene_tree->set_title(TTR("Pick a Viewport")); + scene_tree->popup_centered_ratio(); + picking_viewport=true; + return; + + } + + Object *obj = ClassDB::instance(intype); ERR_BREAK( !obj ); Resource *res=obj->cast_to<Resource>(); ERR_BREAK( !res ); if (owner && hint==PROPERTY_HINT_RESOURCE_TYPE && hint_text=="Script") { //make visual script the right type - res->call("set_instance_base_type",owner->get_type()); + res->call("set_instance_base_type",owner->get_class()); } v=Ref<Resource>(res).get_ref_ptr(); @@ -295,6 +308,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty action_buttons[i]->hide(); } + checks20gc->hide(); for(int i=0;i<20;i++) checks20[i]->hide(); @@ -305,12 +319,16 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty case Variant::BOOL: { + checks20gc->show(); + CheckBox *c=checks20[0]; c->set_text("True"); - c->set_pos(Vector2(4,4)); + checks20gc->set_pos(Vector2(4,4)); c->set_pressed(v); c->show(); - set_size(checks20[0]->get_pos()+checks20[0]->get_size()+Vector2(4,4)*EDSCALE); + + checks20gc->set_size(checks20gc->get_minimum_size()); + set_size(checks20gc->get_pos()+checks20gc->get_size()+Vector2(4,4)*EDSCALE); } break; case Variant::INT: @@ -341,14 +359,14 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty slider->set_min(min); slider->set_max(max); slider->set_step(step); - slider->set_val(v); + slider->set_value(v); slider->show(); set_size(Size2(110,30)*EDSCALE); } else { spinbox->set_min(min); spinbox->set_max(max); spinbox->set_step(step); - spinbox->set_val(v); + spinbox->set_value(v); spinbox->show(); set_size(Size2(70,35)*EDSCALE); } @@ -367,10 +385,19 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty return false; - } else if (hint==PROPERTY_HINT_ALL_FLAGS) { + } else if (hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || hint==PROPERTY_HINT_LAYERS_2D_RENDER || hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || hint==PROPERTY_HINT_LAYERS_3D_RENDER) { + - checks20[0]->set_text(""); + String title; + String basename; + switch (hint) { + case PROPERTY_HINT_LAYERS_2D_RENDER: basename="layer_names/2d_render"; title="2D Render Layers"; break; + case PROPERTY_HINT_LAYERS_2D_PHYSICS: basename="layer_names/2d_physics"; title="2D Physics Layers"; break; + case PROPERTY_HINT_LAYERS_3D_RENDER: basename="layer_names/3d_render"; title="3D Render Layers"; break; + case PROPERTY_HINT_LAYERS_3D_PHYSICS: basename="layer_names/3d_physics";title="3D Physics Layers"; break; + } + checks20gc->show(); uint32_t flgs = v; for(int i=0;i<2;i++) { @@ -378,12 +405,9 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty ofs.y+=22*i; for(int j=0;j<10;j++) { - CheckBox *c=checks20[i*10+j]; - Point2 o=ofs; - o.x+=j*22; - if (j>=5) - o.x+=4; - c->set_pos(o); + int idx = i*10+j; + CheckBox *c=checks20[idx]; + c->set_text(GlobalConfig::get_singleton()->get(basename+"/layer_"+itos(idx+1))); c->set_pressed( flgs & (1<<(i*10+j)) ); c->show(); } @@ -391,7 +415,16 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty } - set_size(checks20[19]->get_pos()+Size2(20,25)*EDSCALE); + show(); + + value_label[0]->set_text(title); + value_label[0]->show(); + value_label[0]->set_pos(Vector2(4,4)*EDSCALE); + + checks20gc->set_pos(Vector2(4,4)*EDSCALE+Vector2(0,value_label[0]->get_size().height+4*EDSCALE)); + checks20gc->set_size(checks20gc->get_minimum_size()); + + set_size(Vector2(4,4)*EDSCALE+checks20gc->get_pos()+checks20gc->get_size()); } else if (hint==PROPERTY_HINT_EXP_EASING) { @@ -689,7 +722,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty value_editor[3]->set_text( String::num( q.w ) ); } break; - case Variant::_AABB: { + case Variant::RECT3: { List<String> names; names.push_back("px"); @@ -700,7 +733,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty names.push_back("sz"); config_value_editors(6,3,16,names); - AABB aabb=v; + Rect3 aabb=v; value_editor[0]->set_text( String::num( aabb.pos.x ) ); value_editor[1]->set_text( String::num( aabb.pos.y ) ); value_editor[2]->set_text( String::num( aabb.pos.z ) ); @@ -709,7 +742,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty value_editor[5]->set_text( String::num( aabb.size.z ) ); } break; - case Variant::MATRIX32: { + case Variant::TRANSFORM2D: { List<String> names; names.push_back("xx"); @@ -720,14 +753,14 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty names.push_back("oy"); config_value_editors(6,2,16,names); - Matrix32 basis=v; + Transform2D basis=v; for(int i=0;i<6;i++) { value_editor[i]->set_text( String::num( basis.elements[i/2][i%2] ) ); } } break; - case Variant::MATRIX3: { + case Variant::BASIS: { List<String> names; names.push_back("xx"); @@ -741,7 +774,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty names.push_back("zz"); config_value_editors(9,3,16,names); - Matrix3 basis=v; + Basis basis=v; for(int i=0;i<9;i++) { value_editor[i]->set_text( String::num( basis.elements[i/3][i%3] ) ); @@ -792,7 +825,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty color_picker->show(); color_picker->set_edit_alpha(hint!=PROPERTY_HINT_COLOR_NO_ALPHA); - color_picker->set_color(v); + color_picker->set_pick_color(v); set_size( Size2(300*EDSCALE, color_picker->get_combined_minimum_size().height+10*EDSCALE)); color_picker->set_focus_on_line_edit(); /* @@ -871,7 +904,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty Set<String> valid_inheritors; valid_inheritors.insert(base); List<StringName> inheritors; - ObjectTypeDB::get_inheriters_from(base.strip_edges(),&inheritors); + ClassDB::get_inheriters_from_class(base.strip_edges(),&inheritors); List<StringName>::Element *E=inheritors.front(); while(E) { valid_inheritors.insert(E->get()); @@ -880,7 +913,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty for(Set<String>::Element *E=valid_inheritors.front();E;E=E->next()) { String t = E->get(); - if (!ObjectTypeDB::can_instance(t)) + if (!ClassDB::can_instance(t)) continue; inheritors_array.push_back(t); @@ -934,7 +967,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty paste_valid=true; else for (int i = 0; i < hint_text.get_slice_count(",");i++) - if (ObjectTypeDB::is_type(cb->get_type(),hint_text.get_slice(",",i))) { + if (ClassDB::is_parent_class(cb->get_class(),hint_text.get_slice(",",i))) { paste_valid=true; break; } @@ -973,27 +1006,27 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty } break; - case Variant::RAW_ARRAY: { + case Variant::POOL_BYTE_ARRAY: { } break; - case Variant::INT_ARRAY: { + case Variant::POOL_INT_ARRAY: { } break; - case Variant::REAL_ARRAY: { + case Variant::POOL_REAL_ARRAY: { } break; - case Variant::STRING_ARRAY: { + case Variant::POOL_STRING_ARRAY: { } break; - case Variant::VECTOR3_ARRAY: { + case Variant::POOL_VECTOR3_ARRAY: { } break; - case Variant::COLOR_ARRAY: { + case Variant::POOL_COLOR_ARRAY: { } break; @@ -1012,7 +1045,7 @@ void CustomPropertyEditor::_file_selected(String p_file) { if (hint==PROPERTY_HINT_FILE || hint==PROPERTY_HINT_DIR) { - v=Globals::get_singleton()->localize_path(p_file); + v=GlobalConfig::get_singleton()->localize_path(p_file); emit_signal("variant_changed"); hide(); } @@ -1095,13 +1128,13 @@ void CustomPropertyEditor::_type_create_selected(int p_idx) { ERR_FAIL_INDEX(p_idx,inheritors_array.size()); //List<String> inheritors; - //ObjectTypeDB::get_inheriters_from(hint_text,&inheritors); + //ClassDB::get_inheriters_from(hint_text,&inheritors); //inheritors.push_front(hint_text); //ERR_FAIL_INDEX( p_idx, inheritors.size() ); String intype=inheritors_array[p_idx]; - Object *obj = ObjectTypeDB::instance(intype); + Object *obj = ClassDB::instance(intype); ERR_FAIL_COND( !obj ); @@ -1126,6 +1159,22 @@ void CustomPropertyEditor::_color_changed(const Color& p_color) { void CustomPropertyEditor::_node_path_selected(NodePath p_path) { + if (picking_viewport) { + + Node* to_node=get_node(p_path); + if (!to_node->cast_to<Viewport>()) { + EditorNode::get_singleton()->show_warning("Selected node is not a Viewport!"); + return; + } + + Ref<ViewportTexture> vt; + vt.instance(); + vt->set_viewport_path_in_scene(get_tree()->get_edited_scene_root()->get_path_to(to_node)); + vt->setup_local_to_scene(); + v=vt; + emit_signal("variant_changed"); + return; + } if (hint==PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE && hint_text!=String()) { @@ -1142,9 +1191,9 @@ void CustomPropertyEditor::_node_path_selected(NodePath p_path) { Node *node=NULL; - if (owner->is_type("Node")) + if (owner->is_class("Node")) node = owner->cast_to<Node>(); - else if (owner->is_type("ArrayPropertyEdit")) + else if (owner->is_class("ArrayPropertyEdit")) node = owner->cast_to<ArrayPropertyEdit>()->get_node(); if (!node) { @@ -1179,7 +1228,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) { } break; case Variant::INT: { - if (hint==PROPERTY_HINT_ALL_FLAGS) { + if (hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || hint==PROPERTY_HINT_LAYERS_2D_RENDER || hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || hint==PROPERTY_HINT_LAYERS_3D_RENDER) { uint32_t f = v; if (checks20[p_which]->is_pressed()) @@ -1262,7 +1311,8 @@ void CustomPropertyEditor::_action_pressed(int p_which) { if (p_which==0) { - + picking_viewport=false; + scene_tree->set_title(TTR("Pick a Node")); scene_tree->popup_centered_ratio(); } else if (p_which==1) { @@ -1285,7 +1335,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) { if (hint==PROPERTY_HINT_RESOURCE_TYPE) { - Object *obj = ObjectTypeDB::instance(intype); + Object *obj = ClassDB::instance(intype); ERR_BREAK( !obj ); Resource *res=obj->cast_to<Resource>(); ERR_BREAK( !res ); @@ -1353,7 +1403,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) { propvalues.push_back(p); } - Ref<Resource> res = Ref<Resource>( ObjectTypeDB::instance( res_orig->get_type() )); + Ref<Resource> res = Ref<Resource>( ClassDB::instance( res_orig->get_class() )); ERR_FAIL_COND(res.is_null()); @@ -1453,12 +1503,12 @@ void CustomPropertyEditor::_drag_easing(const InputEvent& p_ev) { bool sg = val < 0; val = Math::absf(val); - val = Math::log(val)/Math::log(2); + val = Math::log(val)/Math::log((float)2.0); //logspace val+=rel*0.05; // - val = Math::pow(2,val); + val = Math::pow(2.0f,val); if (sg) val=-val; @@ -1654,7 +1704,7 @@ void CustomPropertyEditor::_modified(String p_string) { emit_signal("variant_changed"); } break; - case Variant::_AABB: { + case Variant::RECT3: { Vector3 pos; Vector3 size; @@ -1674,13 +1724,13 @@ void CustomPropertyEditor::_modified(String p_string) { size.y=value_editor[4]->get_text().to_double(); size.z=value_editor[5]->get_text().to_double(); } - v=AABB(pos,size); + v=Rect3(pos,size); emit_signal("variant_changed"); } break; - case Variant::MATRIX32: { + case Variant::TRANSFORM2D: { - Matrix32 m; + Transform2D m; for(int i=0;i<6;i++) { if (evaluator) { m.elements[i/2][i%2]=evaluator->eval(value_editor[i]->get_text()); @@ -1693,9 +1743,9 @@ void CustomPropertyEditor::_modified(String p_string) { emit_signal("variant_changed"); } break; - case Variant::MATRIX3: { + case Variant::BASIS: { - Matrix3 m; + Basis m; for(int i=0;i<9;i++) { if (evaluator) { @@ -1711,7 +1761,7 @@ void CustomPropertyEditor::_modified(String p_string) { } break; case Variant::TRANSFORM: { - Matrix3 basis; + Basis basis; for(int i=0;i<9;i++) { if (evaluator) { @@ -1771,27 +1821,27 @@ void CustomPropertyEditor::_modified(String p_string) { } break; - case Variant::RAW_ARRAY: { + case Variant::POOL_BYTE_ARRAY: { } break; - case Variant::INT_ARRAY: { + case Variant::POOL_INT_ARRAY: { } break; - case Variant::REAL_ARRAY: { + case Variant::POOL_REAL_ARRAY: { } break; - case Variant::STRING_ARRAY: { + case Variant::POOL_STRING_ARRAY: { } break; - case Variant::VECTOR3_ARRAY: { + case Variant::POOL_VECTOR3_ARRAY: { } break; - case Variant::COLOR_ARRAY: { + case Variant::POOL_COLOR_ARRAY: { } break; @@ -1816,9 +1866,9 @@ void CustomPropertyEditor::_focus_enter() { case Variant::VECTOR3: case Variant::PLANE: case Variant::QUAT: - case Variant::_AABB: - case Variant::MATRIX32: - case Variant::MATRIX3: + case Variant::RECT3: + case Variant::TRANSFORM2D: + case Variant::BASIS: case Variant::TRANSFORM: { for (int i=0;i<MAX_VALUE_EDITORS;++i) { if (value_editor[i]->has_focus()) { @@ -1841,9 +1891,9 @@ void CustomPropertyEditor::_focus_exit() { case Variant::VECTOR3: case Variant::PLANE: case Variant::QUAT: - case Variant::_AABB: - case Variant::MATRIX32: - case Variant::MATRIX3: + case Variant::RECT3: + case Variant::TRANSFORM2D: + case Variant::BASIS: case Variant::TRANSFORM: { for (int i=0;i<MAX_VALUE_EDITORS;++i) { value_editor[i]->select(0, 0); @@ -1914,22 +1964,22 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns,int void CustomPropertyEditor::_bind_methods() { - ObjectTypeDB::bind_method("_focus_enter", &CustomPropertyEditor::_focus_enter); - ObjectTypeDB::bind_method("_focus_exit", &CustomPropertyEditor::_focus_exit); - ObjectTypeDB::bind_method("_modified",&CustomPropertyEditor::_modified); - ObjectTypeDB::bind_method("_range_modified", &CustomPropertyEditor::_range_modified); - ObjectTypeDB::bind_method("_scroll_modified",&CustomPropertyEditor::_scroll_modified); - ObjectTypeDB::bind_method("_action_pressed",&CustomPropertyEditor::_action_pressed); - ObjectTypeDB::bind_method("_file_selected",&CustomPropertyEditor::_file_selected); - ObjectTypeDB::bind_method("_type_create_selected",&CustomPropertyEditor::_type_create_selected); - ObjectTypeDB::bind_method("_node_path_selected",&CustomPropertyEditor::_node_path_selected); - ObjectTypeDB::bind_method("_color_changed",&CustomPropertyEditor::_color_changed); - ObjectTypeDB::bind_method("_draw_easing",&CustomPropertyEditor::_draw_easing); - ObjectTypeDB::bind_method("_drag_easing",&CustomPropertyEditor::_drag_easing); - ObjectTypeDB::bind_method( "_text_edit_changed",&CustomPropertyEditor::_text_edit_changed); - ObjectTypeDB::bind_method( "_menu_option",&CustomPropertyEditor::_menu_option); - ObjectTypeDB::bind_method( "_create_dialog_callback",&CustomPropertyEditor::_create_dialog_callback); - ObjectTypeDB::bind_method( "_create_selected_property",&CustomPropertyEditor::_create_selected_property); + ClassDB::bind_method("_focus_enter", &CustomPropertyEditor::_focus_enter); + ClassDB::bind_method("_focus_exit", &CustomPropertyEditor::_focus_exit); + ClassDB::bind_method("_modified",&CustomPropertyEditor::_modified); + ClassDB::bind_method("_range_modified", &CustomPropertyEditor::_range_modified); + ClassDB::bind_method("_scroll_modified",&CustomPropertyEditor::_scroll_modified); + ClassDB::bind_method("_action_pressed",&CustomPropertyEditor::_action_pressed); + ClassDB::bind_method("_file_selected",&CustomPropertyEditor::_file_selected); + ClassDB::bind_method("_type_create_selected",&CustomPropertyEditor::_type_create_selected); + ClassDB::bind_method("_node_path_selected",&CustomPropertyEditor::_node_path_selected); + ClassDB::bind_method("_color_changed",&CustomPropertyEditor::_color_changed); + ClassDB::bind_method("_draw_easing",&CustomPropertyEditor::_draw_easing); + ClassDB::bind_method("_drag_easing",&CustomPropertyEditor::_drag_easing); + ClassDB::bind_method( "_text_edit_changed",&CustomPropertyEditor::_text_edit_changed); + ClassDB::bind_method( "_menu_option",&CustomPropertyEditor::_menu_option); + ClassDB::bind_method( "_create_dialog_callback",&CustomPropertyEditor::_create_dialog_callback); + ClassDB::bind_method( "_create_selected_property",&CustomPropertyEditor::_create_selected_property); @@ -1951,8 +2001,8 @@ CustomPropertyEditor::CustomPropertyEditor() { value_editor[i]->hide(); value_label[i]->hide(); value_editor[i]->connect("text_entered", this,"_modified"); - value_editor[i]->connect("focus_enter", this, "_focus_enter"); - value_editor[i]->connect("focus_exit", this, "_focus_exit"); + value_editor[i]->connect("focus_entered", this, "_focus_enter"); + value_editor[i]->connect("focus_exited", this, "_focus_exit"); } for(int i=0;i<4;i++) { @@ -1967,11 +2017,21 @@ CustomPropertyEditor::CustomPropertyEditor() { } + checks20gc = memnew( GridContainer ); + add_child(checks20gc); + checks20gc->set_columns(11); + for(int i=0;i<20;i++) { + if (i==5 || i==15) { + Control *space = memnew( Control ); + space->set_custom_minimum_size(Size2(20,0)*EDSCALE); + checks20gc->add_child(space); + } + checks20[i]=memnew( CheckBox ); checks20[i]->set_toggle_mode(true); - checks20[i]->set_focus_mode(FOCUS_NONE); - add_child(checks20[i]); + checks20[i]->set_focus_mode(FOCUS_NONE); + checks20gc->add_child(checks20[i]); checks20[i]->hide(); checks20[i]->connect("pressed",this,"_action_pressed",make_binds(i)); checks20[i]->set_tooltip(vformat(TTR("Bit %d, val %d."), i, 1<<i)); @@ -2017,7 +2077,7 @@ CustomPropertyEditor::CustomPropertyEditor() { type_button = memnew( MenuButton ); add_child(type_button); type_button->hide(); - type_button->get_popup()->connect("item_pressed", this,"_type_create_selected"); + type_button->get_popup()->connect("id_pressed", this,"_type_create_selected"); scene_tree = memnew( SceneTreeDialog ); @@ -2025,7 +2085,7 @@ CustomPropertyEditor::CustomPropertyEditor() { scene_tree->connect("selected", this,"_node_path_selected"); scene_tree->get_scene_tree()->set_show_enabled_subscene(true); - texture_preview = memnew( TextureFrame ); + texture_preview = memnew( TextureRect ); add_child( texture_preview); texture_preview->hide(); @@ -2033,13 +2093,13 @@ CustomPropertyEditor::CustomPropertyEditor() { add_child(easing_draw); easing_draw->hide(); easing_draw->connect("draw",this,"_draw_easing"); - easing_draw->connect("input_event",this,"_drag_easing"); + easing_draw->connect("gui_input",this,"_drag_easing"); //easing_draw->emit_signal(SceneStringNames::get_singleton()->input_event,InputEvent()); easing_draw->set_default_cursor_shape(Control::CURSOR_MOVE); menu = memnew(PopupMenu); add_child(menu); - menu->connect("item_pressed",this,"_menu_option"); + menu->connect("id_pressed",this,"_menu_option"); evaluator = NULL; @@ -2102,7 +2162,7 @@ bool PropertyEditor::_get_instanced_node_original_property(const StringName& p_p bool found=false; -// print_line("for prop - "+String(p_prop)); + //print_line("for prop - "+String(p_prop)); while(node) { @@ -2115,13 +2175,13 @@ bool PropertyEditor::_get_instanced_node_original_property(const StringName& p_p } else { ss=node->get_scene_instance_state(); } - // print_line("at - "+String(edited_scene->get_path_to(node))); + //print_line("at - "+String(edited_scene->get_path_to(node))); if (ss.is_valid()) { NodePath np = node->get_path_to(orig); int node_idx = ss->find_node_by_path(np); - // print_line("\t valid, nodeidx "+itos(node_idx)); + //print_line("\t valid, nodeidx "+itos(node_idx)); if (node_idx>=0) { bool lfound=false; Variant lvar; @@ -2130,7 +2190,7 @@ bool PropertyEditor::_get_instanced_node_original_property(const StringName& p_p found=true; value=lvar; - // print_line("\t found value "+String(value)); + //print_line("\t found value "+String(value)); } } } @@ -2156,7 +2216,7 @@ bool PropertyEditor::_is_property_different(const Variant& p_current, const Vari Node* edited_scene =EditorNode::get_singleton()->get_edited_scene(); bool found_state=false; - // print_line("for prop - "+String(p_prop)); + //print_line("for prop - "+String(p_prop)); while(node) { @@ -2274,7 +2334,7 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p case Variant::REAL: case Variant::INT: { - if (p_hint==PROPERTY_HINT_ALL_FLAGS) { + if (p_hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || p_hint==PROPERTY_HINT_LAYERS_2D_RENDER || p_hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || p_hint==PROPERTY_HINT_LAYERS_3D_RENDER) { tree->update(); break; } @@ -2360,10 +2420,10 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p case Variant::VECTOR3: case Variant::QUAT: case Variant::VECTOR2: - case Variant::_AABB: + case Variant::RECT3: case Variant::RECT2: - case Variant::MATRIX32: - case Variant::MATRIX3: + case Variant::TRANSFORM2D: + case Variant::BASIS: case Variant::TRANSFORM: { p_item->set_text(1,obj->get(p_name)); @@ -2404,8 +2464,8 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p } else { RES res = obj->get( p_name ).operator RefPtr(); - if (res->is_type("Texture")) { - int tw = EditorSettings::get_singleton()->get("property_editor/texture_preview_width"); + if (res->is_class("Texture")) { + int tw = EditorSettings::get_singleton()->get("docks/property_editor/texture_preview_width"); p_item->set_icon_max_width(1,tw); p_item->set_icon(1,res); p_item->set_text(1,""); @@ -2416,20 +2476,20 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p } else if (res->get_path()!="" && !res->get_path().begins_with("local://")) { p_item->set_text(1, res->get_path().get_file()); } else { - p_item->set_text(1,"<"+res->get_type()+">"); + p_item->set_text(1,"<"+res->get_class()+">"); }; if (res.is_valid() && res->get_path().is_resource_file()) { p_item->set_tooltip(1,res->get_path()); } else if (res.is_valid()) { - p_item->set_tooltip(1,res->get_name()+" ("+res->get_type()+")"); + p_item->set_tooltip(1,res->get_name()+" ("+res->get_class()+")"); } - if (has_icon(res->get_type(),"EditorIcons")) { + if (has_icon(res->get_class(),"EditorIcons")) { - p_item->set_icon(0,get_icon(res->get_type(),"EditorIcons")); + p_item->set_icon(0,get_icon(res->get_class(),"EditorIcons")); } else { Dictionary d = p_item->get_metadata(0); @@ -2448,7 +2508,7 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p } } - if (!res->is_type("Texture")) { + if (!res->is_class("Texture")) { //texture already previews via itself EditorResourcePreview::get_singleton()->queue_edited_resource_preview(res,this,"_resource_preview_done",p_item->get_instance_ID()); } @@ -2509,6 +2569,12 @@ void PropertyEditor::_check_reload_status(const String&p_name, TreeItem* item) { } + if (obj->call("property_can_revert",p_name).operator bool()) { + + has_reload=true; + } + + if (!has_reload && !obj->get_script().is_null()) { Ref<Script> scr = obj->get_script(); Variant orig_value; @@ -2555,7 +2621,7 @@ bool PropertyEditor::_is_drop_valid(const Dictionary& p_drag_data, const Diction Ref<Resource> res = drag_data["resource"]; for(int i=0;i<allowed_type.get_slice_count(",");i++) { String at = allowed_type.get_slice(",",i).strip_edges(); - if (res.is_valid() && ObjectTypeDB::is_type(res->get_type(),at)) { + if (res.is_valid() && ClassDB::is_parent_class(res->get_class(),at)) { return true; } } @@ -2573,7 +2639,7 @@ bool PropertyEditor::_is_drop_valid(const Dictionary& p_drag_data, const Diction for(int i=0;i<allowed_type.get_slice_count(",");i++) { String at = allowed_type.get_slice(",",i).strip_edges(); - if (ObjectTypeDB::is_type(ftype,at)) { + if (ClassDB::is_parent_class(ftype,at)) { return true; } } @@ -2737,13 +2803,13 @@ void PropertyEditor::_notification(int p_what) { if (p_what==NOTIFICATION_DRAG_BEGIN) { - if (is_visible() && tree->get_root()) { + if (is_visible_in_tree() && tree->get_root()) { _mark_drop_fields(tree->get_root()); } } if (p_what==NOTIFICATION_DRAG_END) { - if (is_visible() && tree->get_root()) { + if (is_visible_in_tree() && tree->get_root()) { _clear_drop_fields(tree->get_root()); } @@ -2802,7 +2868,7 @@ TreeItem *PropertyEditor::get_parent_node(String p_path,HashMap<String,TreeItem* item = item_paths.get(p_path); } else { -// printf("path %s parent path %s - item name %s\n",p_path.ascii().get_data(),p_path.left( p_path.find_last("/") ).ascii().get_data(),p_path.right( p_path.find_last("/") ).ascii().get_data() ); + //printf("path %s parent path %s - item name %s\n",p_path.ascii().get_data(),p_path.left( p_path.find_last("/") ).ascii().get_data(),p_path.right( p_path.find_last("/") ).ascii().get_data() ); TreeItem *parent = get_parent_node( p_path.left( p_path.find_last("/") ),item_paths,root ); item = tree->create_item( parent ); @@ -2923,7 +2989,7 @@ void PropertyEditor::refresh() { if (refresh_countdown>0) return; - refresh_countdown=EditorSettings::get_singleton()->get("property_editor/auto_refresh_interval"); + refresh_countdown=EditorSettings::get_singleton()->get("docks/property_editor/auto_refresh_interval"); } @@ -2998,6 +3064,8 @@ void PropertyEditor::update_tree() { TreeItem * current_category=NULL; String filter = search_box ? search_box->get_text() : ""; + String group; + String group_base; for (List<PropertyInfo>::Element *I=plist.front() ; I ; I=I->next()) { @@ -3005,7 +3073,17 @@ void PropertyEditor::update_tree() { //make sure the property can be edited - if (p.usage&PROPERTY_USAGE_CATEGORY) { + if (p.usage&PROPERTY_USAGE_GROUP) { + + group=p.name; + group_base=p.hint_string; + + continue; + + } else if (p.usage&PROPERTY_USAGE_CATEGORY) { + + group=""; + group_base=""; if (!show_categories) continue; @@ -3062,12 +3140,27 @@ void PropertyEditor::update_tree() { } else if ( ! (p.usage&PROPERTY_USAGE_EDITOR ) ) continue; - String name = (p.name.find("/")!=-1)?p.name.right( p.name.find_last("/")+1 ):p.name; + String basename=p.name; + if (group!="") { + if (group_base!="") { + if (basename.begins_with(group_base)) { + basename=basename.replace_first(group_base,""); + } else { + group=""; //no longer using group base, clear + } + } + } + + if (group!="") { + basename=group+"/"+basename; + } + + String name = (basename.find("/")!=-1)?basename.right( basename.find_last("/")+1 ):basename; if (capitalize_paths) name = name.camelcase_to_underscore().capitalize(); - String path=p.name.left( p.name.find_last("/") ) ; + String path=basename.left( basename.find_last("/") ) ; if (use_filter && filter!="") { @@ -3080,10 +3173,12 @@ void PropertyEditor::update_tree() { continue; } - //printf("property %s\n",p.name.ascii().get_data()); + //printf("property %s\n",basename.ascii().get_data()); TreeItem * parent = get_parent_node(path,item_path,current_category?current_category:root ); - //if (parent->get_parent()==root) - // parent=root; + /* + if (parent->get_parent()==root) + parent=root; + */ int level = 0; if (parent!=root) { level++; @@ -3122,7 +3217,7 @@ void PropertyEditor::update_tree() { if (use_doc_hints) { StringName setter; StringName type; - if (ObjectTypeDB::get_setter_and_type_for_property(obj->get_type_name(),p.name,type,setter)) { + if (ClassDB::get_setter_and_type_for_property(obj->get_class_name(),p.name,type,setter)) { String descr; bool found=false; @@ -3204,7 +3299,7 @@ void PropertyEditor::update_tree() { } - if (p.hint==PROPERTY_HINT_ALL_FLAGS) { + if (p.hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || p.hint==PROPERTY_HINT_LAYERS_2D_RENDER || p.hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || p.hint==PROPERTY_HINT_LAYERS_3D_RENDER) { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->set_editable(1,!read_only); @@ -3258,7 +3353,7 @@ void PropertyEditor::update_tree() { max=p.hint_string.get_slice(",",1).to_double(); } - if (p.type!=PROPERTY_HINT_SPRITE_FRAME && c>=3) { + if (p.hint!=PROPERTY_HINT_SPRITE_FRAME && c>=3) { step= p.hint_string.get_slice(",",2).to_double(); } @@ -3267,7 +3362,7 @@ void PropertyEditor::update_tree() { item->set_range_config(1,min,max,step,p.hint==PROPERTY_HINT_EXP_RANGE); } else if (p.hint==PROPERTY_HINT_ENUM) { -// int c = p.hint_string.get_slice_count(","); + //int c = p.hint_string.get_slice_count(","); item->set_text(1,p.hint_string); if (show_type_icons) item->set_icon( 0,get_icon("Enum","EditorIcons") ); @@ -3276,7 +3371,7 @@ void PropertyEditor::update_tree() { break; } else if (p.hint==PROPERTY_HINT_OBJECT_ID) { -// int c = p.hint_string.get_slice_count(","); + //int c = p.hint_string.get_slice_count(","); item->set_cell_mode(1,TreeItem::CELL_MODE_CUSTOM); String type=p.hint_string; @@ -3403,17 +3498,37 @@ void PropertyEditor::update_tree() { Variant v = obj->get(p.name); + String type_name = "Array"; + String type_name_suffix = ""; + + String hint = p.hint_string; + while(hint.begins_with(itos(Variant::ARRAY)+":")) { + type_name += "<Array"; + type_name_suffix += ">"; + hint = hint.substr(2, hint.size()-2); + } + if(hint.find(":") >= 0) { + hint = hint.substr(0,hint.find(":")); + if(hint.find("/") >= 0) { + hint = hint.substr(0,hint.find("/")); + } + type_name += "<" + Variant::get_type_name(Variant::Type(hint.to_int())); + type_name_suffix += ">"; + } + type_name += type_name_suffix; + if (v.is_array()) - item->set_text(1,"Array["+itos(v.call("size"))+"]"); + item->set_text(1,type_name+"["+itos(v.call("size"))+"]"); else - item->set_text(1,"Array[]"); + item->set_text(1,type_name+"[]"); + if (show_type_icons) item->set_icon( 0, get_icon("ArrayData","EditorIcons") ); } break; - case Variant::INT_ARRAY: { + case Variant::POOL_INT_ARRAY: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->add_button(1,get_icon("EditResource","EditorIcons")); @@ -3428,7 +3543,7 @@ void PropertyEditor::update_tree() { } break; - case Variant::REAL_ARRAY: { + case Variant::POOL_REAL_ARRAY: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->add_button(1,get_icon("EditResource","EditorIcons")); @@ -3443,7 +3558,7 @@ void PropertyEditor::update_tree() { } break; - case Variant::STRING_ARRAY: { + case Variant::POOL_STRING_ARRAY: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->add_button(1,get_icon("EditResource","EditorIcons")); @@ -3458,7 +3573,7 @@ void PropertyEditor::update_tree() { } break; - case Variant::RAW_ARRAY: { + case Variant::POOL_BYTE_ARRAY: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->add_button(1,get_icon("EditResource","EditorIcons")); @@ -3473,7 +3588,7 @@ void PropertyEditor::update_tree() { } break; - case Variant::VECTOR2_ARRAY: { + case Variant::POOL_VECTOR2_ARRAY: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->add_button(1,get_icon("EditResource","EditorIcons")); @@ -3488,7 +3603,7 @@ void PropertyEditor::update_tree() { } break; - case Variant::VECTOR3_ARRAY: { + case Variant::POOL_VECTOR3_ARRAY: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->add_button(1,get_icon("EditResource","EditorIcons")); @@ -3503,7 +3618,7 @@ void PropertyEditor::update_tree() { } break; - case Variant::COLOR_ARRAY: { + case Variant::POOL_COLOR_ARRAY: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->add_button(1,get_icon("EditResource","EditorIcons")); @@ -3545,8 +3660,8 @@ void PropertyEditor::update_tree() { item->set_icon( 0,get_icon("Vector","EditorIcons") ); } break; - case Variant::MATRIX32: - case Variant::MATRIX3: { + case Variant::TRANSFORM2D: + case Variant::BASIS: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->set_editable( 1, true ); @@ -3570,11 +3685,11 @@ void PropertyEditor::update_tree() { item->set_icon( 0,get_icon("Plane","EditorIcons") ); } break; - case Variant::_AABB: { + case Variant::RECT3: { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->set_editable( 1, true ); - item->set_text(1,"AABB"); + item->set_text(1,"Rect3"); if (show_type_icons) item->set_icon( 0,get_icon("Rect3","EditorIcons") ); } break; @@ -3592,7 +3707,7 @@ void PropertyEditor::update_tree() { item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM ); item->set_editable( 1, !read_only ); -// item->set_text(1,obj->get(p.name)); + //item->set_text(1,obj->get(p.name)); item->set_custom_bg_color(1,obj->get(p.name)); if (show_type_icons) item->set_icon( 0,get_icon("Color","EditorIcons") ); @@ -3616,7 +3731,7 @@ void PropertyEditor::update_tree() { item->set_cell_mode(1, TreeItem::CELL_MODE_STRING); item->set_editable( 1, !read_only ); item->set_text(1,obj->get(p.name)); - item->add_button(1, get_icon("Collapse", "EditorIcons")); + item->add_button(1, get_icon("CopyNodePath", "EditorIcons")); } break; case Variant::OBJECT: { @@ -3635,8 +3750,8 @@ void PropertyEditor::update_tree() { } else { RES res = obj->get( p.name ).operator RefPtr(); - if (res->is_type("Texture")) { - int tw = EditorSettings::get_singleton()->get("property_editor/texture_preview_width"); + if (res->is_class("Texture")) { + int tw = EditorSettings::get_singleton()->get("docks/property_editor/texture_preview_width"); item->set_icon_max_width(1,tw); item->set_icon(1,res); item->set_text(1,""); @@ -3648,19 +3763,19 @@ void PropertyEditor::update_tree() { item->set_text(1, res->get_path().get_file()); } else { - item->set_text(1,"<"+res->get_type()+">"); + item->set_text(1,"<"+res->get_class()+">"); } - if (has_icon(res->get_type(),"EditorIcons")) { - type=res->get_type(); + if (has_icon(res->get_class(),"EditorIcons")) { + type=res->get_class(); } if (res.is_valid() && res->get_path().is_resource_file()) { item->set_tooltip(1,res->get_path()); } else if (res.is_valid()) { - item->set_tooltip(1,res->get_name()+" ("+res->get_type()+")"); + item->set_tooltip(1,res->get_name()+" ("+res->get_class()+")"); } - if (!res->is_type("Texture")) { + if (!res->is_class("Texture")) { //texture already previews via itself EditorResourcePreview::get_singleton()->queue_edited_resource_preview(res,this,"_resource_preview_done",item->get_instance_ID()); } @@ -3678,7 +3793,7 @@ void PropertyEditor::update_tree() { item->set_icon( 0, get_icon("Object","EditorIcons") ); } -// item->double_click_signal.connect( Method1<int>( Method2<int,String>( this, &Editoritem_obj_edited ), p.name ) ); + //item->double_click_signal.connect( Method1<int>( Method2<int,String>( this, &Editoritem_obj_edited ), p.name ) ); } break; default: {}; @@ -3715,6 +3830,12 @@ void PropertyEditor::update_tree() { } + if (obj->call("property_can_revert",p.name).operator bool()) { + + item->add_button(1,get_icon("ReloadSmall","EditorIcons"),3); + has_reload=true; + } + if (!has_reload && !obj->get_script().is_null()) { Ref<Script> scr = obj->get_script(); Variant orig_value; @@ -3765,22 +3886,34 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) { } else { - undo_redo->create_action(TTR("Set")+" "+p_name,UndoRedo::MERGE_ENDS); undo_redo->add_do_property(obj,p_name,p_value); undo_redo->add_undo_property(obj,p_name,obj->get(p_name)); + + undo_redo->add_do_method(this,"_changed_callback",obj,p_name); undo_redo->add_undo_method(this,"_changed_callback",obj,p_name); - undo_redo->add_undo_method(this,"_changed_callback",obj,p_name); + Resource *r = obj->cast_to<Resource>(); if (r) { if (!r->is_edited() && String(p_name)!="resource/edited") { undo_redo->add_do_method(r,"set_edited",true); undo_redo->add_undo_method(r,"set_edited",false); } + + if (String(p_name)=="resource_local_to_scene") { + bool prev = obj->get(p_name); + bool next = p_value; + if (next) { + undo_redo->add_do_method(this,"setup_local_to_scene"); + } + if (prev) { + undo_redo->add_undo_method(this,"setup_local_to_scene"); + } + } } - _prop_edited_name[0]=p_name; - undo_redo->add_do_method(this,"emit_signal",_prop_edited,_prop_edited_name); + undo_redo->add_do_method(this,"emit_signal",_prop_edited,p_name); + undo_redo->add_undo_method(this,"emit_signal",_prop_edited,p_name); undo_redo->commit_action(); } } @@ -3835,7 +3968,7 @@ void PropertyEditor::_item_edited() { case Variant::INT: case Variant::REAL: { - if (hint==PROPERTY_HINT_ALL_FLAGS) + if (hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || hint==PROPERTY_HINT_LAYERS_2D_RENDER || hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || hint==PROPERTY_HINT_LAYERS_3D_RENDER) break; if (hint==PROPERTY_HINT_EXP_EASING) break; @@ -3876,10 +4009,10 @@ void PropertyEditor::_item_edited() { case Variant::QUAT: { } break; - case Variant::_AABB: { + case Variant::RECT3: { } break; - case Variant::MATRIX3: { + case Variant::BASIS: { } break; case Variant::TRANSFORM: { @@ -3905,22 +4038,22 @@ void PropertyEditor::_item_edited() { } break; // arrays - case Variant::RAW_ARRAY: { + case Variant::POOL_BYTE_ARRAY: { } break; - case Variant::INT_ARRAY: { + case Variant::POOL_INT_ARRAY: { } break; - case Variant::REAL_ARRAY: { + case Variant::POOL_REAL_ARRAY: { } break; - case Variant::STRING_ARRAY: { + case Variant::POOL_STRING_ARRAY: { } break; - case Variant::VECTOR3_ARRAY: { + case Variant::POOL_VECTOR3_ARRAY: { } break; - case Variant::COLOR_ARRAY: { + case Variant::POOL_COLOR_ARRAY: { } break; @@ -4043,6 +4176,11 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) { return; } + if (obj->call("property_can_revert",prop).operator bool()) { + Variant rev = obj->call("property_get_revert",prop); + _edit_set(prop,rev); + } + if (!obj->get_script().is_null()) { Ref<Script> scr = obj->get_script(); Variant orig_value; @@ -4108,7 +4246,7 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) { emit_signal("object_id_selected",obj->get(n)); print_line("OBJ ID SELECTED"); - } else if (t==Variant::ARRAY || t==Variant::INT_ARRAY || t==Variant::REAL_ARRAY || t==Variant::STRING_ARRAY || t==Variant::VECTOR2_ARRAY || t==Variant::VECTOR3_ARRAY || t==Variant::COLOR_ARRAY || t==Variant::RAW_ARRAY) { + } else if (t==Variant::ARRAY || t==Variant::POOL_INT_ARRAY || t==Variant::POOL_REAL_ARRAY || t==Variant::POOL_STRING_ARRAY || t==Variant::POOL_VECTOR2_ARRAY || t==Variant::POOL_VECTOR3_ARRAY || t==Variant::POOL_COLOR_ARRAY || t==Variant::POOL_BYTE_ARRAY) { Variant v = obj->get(n); @@ -4118,7 +4256,7 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) { } Ref<ArrayPropertyEdit> ape = memnew( ArrayPropertyEdit ); - ape->edit(obj,n,Variant::Type(t)); + ape->edit(obj,n,ht,Variant::Type(t)); EditorNode::get_singleton()->push_item(ape.ptr()); } @@ -4206,7 +4344,7 @@ void PropertyEditor::_resource_preview_done(const String& p_path,const Ref<Textu ERR_FAIL_COND(!ti); - int tw = EditorSettings::get_singleton()->get("property_editor/texture_preview_width"); + int tw = EditorSettings::get_singleton()->get("docks/property_editor/texture_preview_width"); ti->set_icon(1,p_preview); //should be scaled I think? ti->set_icon_max_width(1,tw); @@ -4214,24 +4352,24 @@ void PropertyEditor::_resource_preview_done(const String& p_path,const Ref<Textu } void PropertyEditor::_bind_methods() { - ObjectTypeDB::bind_method( "_item_edited",&PropertyEditor::_item_edited); - ObjectTypeDB::bind_method( "_item_selected",&PropertyEditor::_item_selected); - ObjectTypeDB::bind_method( "_custom_editor_request",&PropertyEditor::_custom_editor_request); - ObjectTypeDB::bind_method( "_custom_editor_edited",&PropertyEditor::_custom_editor_edited); - ObjectTypeDB::bind_method( "_resource_edit_request",&PropertyEditor::_resource_edit_request); - ObjectTypeDB::bind_method( "_node_removed",&PropertyEditor::_node_removed); - ObjectTypeDB::bind_method( "_edit_button",&PropertyEditor::_edit_button); - ObjectTypeDB::bind_method( "_changed_callback",&PropertyEditor::_changed_callbacks); - ObjectTypeDB::bind_method( "_draw_flags",&PropertyEditor::_draw_flags); - ObjectTypeDB::bind_method( "_set_range_def",&PropertyEditor::_set_range_def); - ObjectTypeDB::bind_method( "_filter_changed",&PropertyEditor::_filter_changed); - ObjectTypeDB::bind_method( "update_tree",&PropertyEditor::update_tree); - ObjectTypeDB::bind_method( "_resource_preview_done",&PropertyEditor::_resource_preview_done); - ObjectTypeDB::bind_method( "refresh",&PropertyEditor::refresh); - - ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &PropertyEditor::get_drag_data_fw); - ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &PropertyEditor::can_drop_data_fw); - ObjectTypeDB::bind_method(_MD("drop_data_fw"), &PropertyEditor::drop_data_fw); + ClassDB::bind_method( "_item_edited",&PropertyEditor::_item_edited); + ClassDB::bind_method( "_item_selected",&PropertyEditor::_item_selected); + ClassDB::bind_method( "_custom_editor_request",&PropertyEditor::_custom_editor_request); + ClassDB::bind_method( "_custom_editor_edited",&PropertyEditor::_custom_editor_edited); + ClassDB::bind_method( "_resource_edit_request",&PropertyEditor::_resource_edit_request); + ClassDB::bind_method( "_node_removed",&PropertyEditor::_node_removed); + ClassDB::bind_method( "_edit_button",&PropertyEditor::_edit_button); + ClassDB::bind_method( "_changed_callback",&PropertyEditor::_changed_callbacks); + ClassDB::bind_method( "_draw_flags",&PropertyEditor::_draw_flags); + ClassDB::bind_method( "_set_range_def",&PropertyEditor::_set_range_def); + ClassDB::bind_method( "_filter_changed",&PropertyEditor::_filter_changed); + ClassDB::bind_method( "update_tree",&PropertyEditor::update_tree); + ClassDB::bind_method( "_resource_preview_done",&PropertyEditor::_resource_preview_done); + ClassDB::bind_method( "refresh",&PropertyEditor::refresh); + + ClassDB::bind_method(_MD("get_drag_data_fw"), &PropertyEditor::get_drag_data_fw); + ClassDB::bind_method(_MD("can_drop_data_fw"), &PropertyEditor::can_drop_data_fw); + ClassDB::bind_method(_MD("drop_data_fw"), &PropertyEditor::drop_data_fw); ADD_SIGNAL( MethodInfo("property_toggled",PropertyInfo( Variant::STRING, "property"),PropertyInfo( Variant::BOOL, "value"))); ADD_SIGNAL( MethodInfo("resource_selected", PropertyInfo( Variant::OBJECT, "res"),PropertyInfo( Variant::STRING, "prop") ) ); @@ -4317,7 +4455,7 @@ void PropertyEditor::set_subsection_selectable(bool p_selectable) { PropertyEditor::PropertyEditor() { _prop_edited="property_edited"; - _prop_edited_name.push_back(String()); + undo_redo=NULL; obj=NULL; search_box=NULL; @@ -4379,7 +4517,7 @@ PropertyEditor::PropertyEditor() { use_doc_hints=false; use_filter=false; subsection_selectable=false; - show_type_icons=EDITOR_DEF("inspector/show_type_icons",false); + show_type_icons=EDITOR_DEF("interface/show_type_icons",false); } @@ -4398,10 +4536,11 @@ PropertyEditor::~PropertyEditor() class SectionedPropertyEditorFilter : public Object { - OBJ_TYPE( SectionedPropertyEditorFilter, Object ); + GDCLASS( SectionedPropertyEditorFilter, Object ); Object *edited; String section; + bool allow_sub; bool _set(const StringName& p_name, const Variant& p_value) { @@ -4415,6 +4554,7 @@ class SectionedPropertyEditorFilter : public Object { bool valid; edited->set(name,p_value,&valid); + //_change_notify(p_name.operator String().utf8().get_data()); return valid; } @@ -4446,25 +4586,48 @@ class SectionedPropertyEditorFilter : public Object { PropertyInfo pi=E->get(); int sp = pi.name.find("/"); - if (sp!=-1) { - String ss = pi.name.substr(0,sp); - if (ss==section) { - pi.name=pi.name.substr(sp+1,pi.name.length()); - p_list->push_back(pi); - } - } else { - if (section=="") - p_list->push_back(pi); + if (pi.name=="resource_path" || pi.name=="resource_name" || pi.name.begins_with("script/")) //skip resource stuff + continue; + + if (sp==-1) { + pi.name="Global/"+pi.name; + + } + + if (pi.name.begins_with(section+"/")) { + pi.name=pi.name.replace_first(section+"/",""); + if (!allow_sub && pi.name.find("/")!=-1) + continue; + p_list->push_back(pi); } } } + + bool property_can_revert(const String& p_name) { + + return edited->call("property_can_revert",section+"/"+p_name); + } + + Variant property_get_revert(const String& p_name) { + + return edited->call("property_get_revert",section+"/"+p_name); + } + +protected: + static void _bind_methods() { + + ClassDB::bind_method("property_can_revert",&SectionedPropertyEditorFilter::property_can_revert); + ClassDB::bind_method("property_get_revert",&SectionedPropertyEditorFilter::property_get_revert); + } + public: - void set_section(const String& p_section) { + void set_section(const String& p_section,bool p_allow_sub) { section=p_section; + allow_sub=p_allow_sub; _change_notify(); } @@ -4482,36 +4645,30 @@ public: void SectionedPropertyEditor::_bind_methods() { - ObjectTypeDB::bind_method("_section_selected",&SectionedPropertyEditor::_section_selected); + ClassDB::bind_method("_section_selected",&SectionedPropertyEditor::_section_selected); - ObjectTypeDB::bind_method("update_category_list", &SectionedPropertyEditor::update_category_list); + ClassDB::bind_method("update_category_list", &SectionedPropertyEditor::update_category_list); } -void SectionedPropertyEditor::_section_selected(int p_which) { +void SectionedPropertyEditor::_section_selected() { + + if (!sections->get_selected()) + return; - filter->set_section( sections->get_item_metadata(p_which) ); + filter->set_section( sections->get_selected()->get_metadata(0), sections->get_selected()->get_children()==NULL); } void SectionedPropertyEditor::set_current_section(const String& p_section) { - int section_idx = sections->find_metadata(p_section); - - if (section_idx==sections->get_current()) - return; - - if (section_idx!=-1) { - sections->select(section_idx); - _section_selected(section_idx); - } else if (sections->get_item_count()) { - sections->select(0); - _section_selected(0); + if (section_map.has(p_section)) { + section_map[p_section]->select(0); } } String SectionedPropertyEditor::get_current_section() const { - if (sections->get_current()!=-1) - return sections->get_item_metadata( sections->get_current() ); + if (sections->get_selected()) + return sections->get_selected()->get_metadata(0); else return ""; } @@ -4548,8 +4705,9 @@ void SectionedPropertyEditor::edit(Object* p_object) { filter->set_edited(p_object); editor->edit(filter); - sections->select(0); - _section_selected(0); + if (sections->get_root()->get_children()) { + sections->get_root()->get_children()->select(0); + } } else { update_category_list(); @@ -4569,7 +4727,12 @@ void SectionedPropertyEditor::update_category_list() { List<PropertyInfo> pinfo; o->get_property_list(&pinfo); - Set<String> existing_sections; + section_map.clear(); + + TreeItem *root = sections->create_item(); + section_map[""]=root; + + for (List<PropertyInfo>::Element *E=pinfo.front();E;E=E->next()) { PropertyInfo pi=E->get(); @@ -4579,27 +4742,41 @@ void SectionedPropertyEditor::update_category_list() { else if ( !(pi.usage&PROPERTY_USAGE_EDITOR) ) continue; - if (pi.name.find(":")!=-1 || pi.name=="script/script" || pi.name.begins_with("resource/")) + if (pi.name.find(":")!=-1 || pi.name=="script/script" || pi.name=="resource_name" || pi.name=="resource_path") continue; int sp = pi.name.find("/"); - if (sp!=-1) { - String sname=pi.name.substr(0,sp); - if (!existing_sections.has(sname)) { - existing_sections.insert(sname); - sections->add_item(sname.capitalize()); - sections->set_item_metadata(sections->get_item_count()-1,sname); + if (sp==-1) + pi.name="Global/"+pi.name; + + Vector<String> sectionarr = pi.name.split("/"); + String metasection; + + + for(int i=0;i<MIN(2,sectionarr.size()-1);i++) { + + TreeItem *parent = section_map[metasection]; + + if (i>0) { + metasection+="/"+sectionarr[i]; + } else { + metasection=sectionarr[i]; } - } else { - if (!existing_sections.has("")) { - existing_sections.insert(""); - sections->add_item(TTR("Global")); - sections->set_item_metadata(sections->get_item_count()-1,""); + + if (!section_map.has(metasection)) { + TreeItem *ms = sections->create_item(parent); + section_map[metasection]=ms; + ms->set_text(0,sectionarr[i].capitalize()); + ms->set_metadata(0,metasection); + } } + } - set_current_section(selected_category); + if (section_map.has(selected_category)) { + section_map[selected_category]->select(0); + } } PropertyEditor *SectionedPropertyEditor::get_property_editor() { @@ -4615,8 +4792,9 @@ SectionedPropertyEditor::SectionedPropertyEditor() { left_vb->set_custom_minimum_size(Size2(160,0)*EDSCALE); add_child(left_vb); - sections = memnew( ItemList ); + sections = memnew( Tree ); sections->set_v_size_flags(SIZE_EXPAND_FILL); + sections->set_hide_root(true); left_vb->add_margin_child(TTR("Sections:"),sections,true); @@ -4634,7 +4812,7 @@ SectionedPropertyEditor::SectionedPropertyEditor() { editor->hide_top_label(); - sections->connect("item_selected",this,"_section_selected"); + sections->connect("cell_selected",this,"_section_selected"); } diff --git a/tools/editor/property_editor.h b/tools/editor/property_editor.h index 3fe332bf87..900d06497f 100644 --- a/tools/editor/property_editor.h +++ b/tools/editor/property_editor.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,10 +37,11 @@ #include "scene/gui/dialogs.h" #include "scene/gui/color_picker.h" #include "scene/gui/menu_button.h" -#include "scene/gui/texture_frame.h" +#include "scene/gui/texture_rect.h" #include "scene/gui/text_edit.h" #include "scene/gui/check_button.h" #include "scene/gui/split_container.h" +#include "scene/gui/grid_container.h" #include "scene_tree_editor.h" /** @@ -53,7 +54,7 @@ class PropertySelector; class CustomPropertyEditor : public Popup { - OBJ_TYPE( CustomPropertyEditor, Popup ); + GDCLASS( CustomPropertyEditor, Popup ); enum { MAX_VALUE_EDITORS=12, @@ -95,10 +96,12 @@ class CustomPropertyEditor : public Popup { Button *action_buttons[MAX_ACTION_BUTTONS]; MenuButton *type_button; Vector<String> inheritors_array; - TextureFrame *texture_preview; + TextureRect *texture_preview; ColorPicker *color_picker; TextEdit *text_edit; bool read_only; + bool picking_viewport; + GridContainer *checks20gc; CheckBox *checks20[20]; SpinBox *spinbox; HSlider *slider; @@ -163,7 +166,7 @@ public: class PropertyEditor : public Control { - OBJ_TYPE( PropertyEditor, Control ); + GDCLASS( PropertyEditor, Control ); Tree *tree; Label *top_label; @@ -174,7 +177,7 @@ class PropertyEditor : public Control { Object* obj; - Array _prop_edited_name; + StringName _prop_edited; bool capitalize_paths; @@ -219,6 +222,8 @@ class PropertyEditor : public Control { void _edit_button(Object *p_item, int p_column, int p_button); void _node_removed(Node *p_node); + +friend class ProjectExportDialog; void _edit_set(const String& p_name, const Variant& p_value); void _draw_flags(Object *ti,const Rect2& p_rect); @@ -287,17 +292,19 @@ class SectionedPropertyEditorFilter; class SectionedPropertyEditor : public HBoxContainer { - OBJ_TYPE(SectionedPropertyEditor,HBoxContainer); + GDCLASS(SectionedPropertyEditor,HBoxContainer); ObjectID obj; - ItemList *sections; + Tree *sections; SectionedPropertyEditorFilter *filter; + + Map<String,TreeItem*> section_map; PropertyEditor *editor; static void _bind_methods(); - void _section_selected(int p_which); + void _section_selected(); public: @@ -315,7 +322,7 @@ public: }; class PropertyValueEvaluator : public ValueEvaluator { - OBJ_TYPE( PropertyValueEvaluator, ValueEvaluator ); + GDCLASS( PropertyValueEvaluator, ValueEvaluator ); Object *obj; ScriptLanguage *script_language; diff --git a/tools/editor/property_selector.cpp b/tools/editor/property_selector.cpp index 20b72240d9..3eeec1634d 100644 --- a/tools/editor/property_selector.cpp +++ b/tools/editor/property_selector.cpp @@ -1,6 +1,34 @@ +/*************************************************************************/ +/* property_selector.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #include "property_selector.h" -#include "editor_scale.h" +#include "editor_scale.h" #include "os/keyboard.h" void PropertySelector::_text_changed(const String& p_newtext) { @@ -18,7 +46,7 @@ void PropertySelector::_sbox_input(const InputEvent& p_ie) { case KEY_PAGEUP: case KEY_PAGEDOWN: { - search_options->call("_input_event", p_ie); + search_options->call("_gui_input", p_ie); search_box->accept_event(); TreeItem *root = search_options->get_root(); @@ -87,8 +115,8 @@ void PropertySelector::_update_search() { StringName base=base_type; while(base) { props.push_back(PropertyInfo(Variant::NIL,base,PROPERTY_HINT_NONE,"",PROPERTY_USAGE_CATEGORY)); - ObjectTypeDB::get_property_list(base,&props,true); - base=ObjectTypeDB::type_inherits_from(base); + ClassDB::get_property_list(base,&props,true); + base=ClassDB::get_parent_class(base); } } @@ -194,8 +222,8 @@ void PropertySelector::_update_search() { StringName base=base_type; while(base) { methods.push_back(MethodInfo("*"+String(base))); - ObjectTypeDB::get_method_list(base,&methods,true); - base=ObjectTypeDB::type_inherits_from(base); + ClassDB::get_method_list(base,&methods,true); + base=ClassDB::get_parent_class(base); } } @@ -321,8 +349,8 @@ void PropertySelector::_item_selected() { case InputEvent::KEY: class_type="InputEventKey"; break; case InputEvent::MOUSE_MOTION: class_type="InputEventMouseMotion"; break; case InputEvent::MOUSE_BUTTON: class_type="InputEventMouseButton"; break; - case InputEvent::JOYSTICK_MOTION: class_type="InputEventJoystickMotion"; break; - case InputEvent::JOYSTICK_BUTTON: class_type="InputEventJoystickButton"; break; + case InputEvent::JOYPAD_MOTION: class_type="InputEventJoypadMotion"; break; + case InputEvent::JOYPAD_BUTTON: class_type="InputEventJoypadButton"; break; case InputEvent::SCREEN_TOUCH: class_type="InputEventScreenTouch"; break; case InputEvent::SCREEN_DRAG: class_type="InputEventScreenDrag"; break; case InputEvent::ACTION: class_type="InputEventAction"; break; @@ -358,14 +386,14 @@ void PropertySelector::_item_selected() { } } - at_class=ObjectTypeDB::type_inherits_from(at_class); + at_class=ClassDB::get_parent_class(at_class); } if (text==String()) { StringName setter; StringName type; - if (ObjectTypeDB::get_setter_and_type_for_property(class_type,name,type,setter)) { + if (ClassDB::get_setter_and_type_for_property(class_type,name,type,setter)) { Map<String,DocData::ClassDoc>::Element *E=dd->class_list.find(type); if (E) { for(int i=0;i<E->get().methods.size();i++) { @@ -395,7 +423,7 @@ void PropertySelector::_item_selected() { } } - at_class=ObjectTypeDB::type_inherits_from(at_class); + at_class=ClassDB::get_parent_class(at_class); } } @@ -470,7 +498,7 @@ void PropertySelector::select_method_from_basic_type(Variant::Type p_type, const void PropertySelector::select_method_from_instance(Object* p_instance, const String &p_current){ - base_type=p_instance->get_type(); + base_type=p_instance->get_class(); selected=p_current; type=Variant::NIL; script=0; @@ -559,10 +587,10 @@ void PropertySelector::select_property_from_instance(Object* p_instance, const S void PropertySelector::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_text_changed"),&PropertySelector::_text_changed); - ObjectTypeDB::bind_method(_MD("_confirmed"),&PropertySelector::_confirmed); - ObjectTypeDB::bind_method(_MD("_sbox_input"),&PropertySelector::_sbox_input); - ObjectTypeDB::bind_method(_MD("_item_selected"),&PropertySelector::_item_selected); + ClassDB::bind_method(_MD("_text_changed"),&PropertySelector::_text_changed); + ClassDB::bind_method(_MD("_confirmed"),&PropertySelector::_confirmed); + ClassDB::bind_method(_MD("_sbox_input"),&PropertySelector::_sbox_input); + ClassDB::bind_method(_MD("_item_selected"),&PropertySelector::_item_selected); ADD_SIGNAL(MethodInfo("selected",PropertyInfo(Variant::STRING,"name"))); @@ -574,11 +602,11 @@ PropertySelector::PropertySelector() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); search_box = memnew( LineEdit ); vbc->add_margin_child(TTR("Search:"),search_box); search_box->connect("text_changed",this,"_text_changed"); - search_box->connect("input_event",this,"_sbox_input"); + search_box->connect("gui_input",this,"_sbox_input"); search_options = memnew( Tree ); vbc->add_margin_child(TTR("Matches:"),search_options,true); get_ok()->set_text(TTR("Open")); diff --git a/tools/editor/property_selector.h b/tools/editor/property_selector.h index f7f0e7e167..d29183f85e 100644 --- a/tools/editor/property_selector.h +++ b/tools/editor/property_selector.h @@ -1,3 +1,31 @@ +/*************************************************************************/ +/* property_selector.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef PROPERTYSELECTOR_H #define PROPERTYSELECTOR_H @@ -6,7 +34,7 @@ #include "editor_help.h" class PropertySelector : public ConfirmationDialog { - OBJ_TYPE(PropertySelector,ConfirmationDialog ) + GDCLASS(PropertySelector,ConfirmationDialog ) LineEdit *search_box; diff --git a/tools/editor/pvrtc_compress.cpp b/tools/editor/pvrtc_compress.cpp index 75b5c69bc2..b130f6c773 100644 --- a/tools/editor/pvrtc_compress.cpp +++ b/tools/editor/pvrtc_compress.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,18 +27,20 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "pvrtc_compress.h" + #include "editor_settings.h" #include "scene/resources/texture.h" #include "io/resource_saver.h" #include "io/resource_loader.h" #include "os/os.h" #include "os/file_access.h" + static void (*_base_image_compress_pvrtc2_func)(Image *)=NULL; static void (*_base_image_compress_pvrtc4_func)(Image *)=NULL; static void _compress_image(Image::CompressMode p_mode,Image *p_image) { - String ttpath = EditorSettings::get_singleton()->get("PVRTC/texture_tool"); + String ttpath = EditorSettings::get_singleton()->get("filesystem/import/pvrtc_texture_tool"); if (ttpath.strip_edges()=="" || !FileAccess::exists(ttpath)) { switch(p_mode) { @@ -82,10 +84,10 @@ static void _compress_image(Image::CompressMode p_mode,Image *p_image) { } - if (EditorSettings::get_singleton()->get("PVRTC/fast_conversion").operator bool()) { + if (EditorSettings::get_singleton()->get("filesystem/import/pvrtc_fast_conversion").operator bool()) { args.push_back("-pvrtcfast"); } - if (p_image->get_mipmaps()>0) + if (p_image->has_mipmaps()) args.push_back("-m"); Ref<ImageTexture> t = memnew( ImageTexture ); diff --git a/tools/editor/pvrtc_compress.h b/tools/editor/pvrtc_compress.h index 129faee080..4ba29026c5 100644 --- a/tools/editor/pvrtc_compress.h +++ b/tools/editor/pvrtc_compress.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/quick_open.cpp b/tools/editor/quick_open.cpp index e18dc584d5..615b42b411 100644 --- a/tools/editor/quick_open.cpp +++ b/tools/editor/quick_open.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,8 +27,8 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "quick_open.h" -#include "os/keyboard.h" +#include "os/keyboard.h" void EditorQuickOpen::popup(const StringName &p_base, bool p_enable_multi, bool p_add_dirs, bool p_dontclear) { @@ -86,7 +86,7 @@ void EditorQuickOpen::_sbox_input(const InputEvent& p_ie) { case KEY_PAGEUP: case KEY_PAGEDOWN: { - search_options->call("_input_event", p_ie); + search_options->call("_gui_input", p_ie); search_box->accept_event(); TreeItem *root = search_options->get_root(); @@ -166,7 +166,7 @@ void EditorQuickOpen::_parse_fs(EditorFileSystemDirectory *efsd, Vector< Pair< S String file = efsd->get_file_path(i); file=file.substr(6,file.length()); - if (ObjectTypeDB::is_type(efsd->get_file_type(i),base_type) && (search_text.is_subsequence_ofi(file))) { + if (ClassDB::is_parent_class(efsd->get_file_type(i),base_type) && (search_text.is_subsequence_ofi(file))) { Pair< String, Ref<Texture> > pair; pair.first = file; pair.second = get_icon((has_icon(efsd->get_file_type(i), ei) ? efsd->get_file_type(i) : ot), ei); @@ -252,9 +252,9 @@ StringName EditorQuickOpen::get_base_type() const { void EditorQuickOpen::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_text_changed"),&EditorQuickOpen::_text_changed); - ObjectTypeDB::bind_method(_MD("_confirmed"),&EditorQuickOpen::_confirmed); - ObjectTypeDB::bind_method(_MD("_sbox_input"),&EditorQuickOpen::_sbox_input); + ClassDB::bind_method(_MD("_text_changed"),&EditorQuickOpen::_text_changed); + ClassDB::bind_method(_MD("_confirmed"),&EditorQuickOpen::_confirmed); + ClassDB::bind_method(_MD("_sbox_input"),&EditorQuickOpen::_sbox_input); ADD_SIGNAL(MethodInfo("quick_open")); @@ -266,11 +266,11 @@ EditorQuickOpen::EditorQuickOpen() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); search_box = memnew( LineEdit ); vbc->add_margin_child(TTR("Search:"),search_box); search_box->connect("text_changed",this,"_text_changed"); - search_box->connect("input_event",this,"_sbox_input"); + search_box->connect("gui_input",this,"_sbox_input"); search_options = memnew( Tree ); vbc->add_margin_child(TTR("Matches:"),search_options,true); get_ok()->set_text(TTR("Open")); diff --git a/tools/editor/quick_open.h b/tools/editor/quick_open.h index c253f7606e..ef91d910b1 100644 --- a/tools/editor/quick_open.h +++ b/tools/editor/quick_open.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,7 +35,7 @@ #include "pair.h" class EditorQuickOpen : public ConfirmationDialog { - OBJ_TYPE(EditorQuickOpen,ConfirmationDialog ) + GDCLASS(EditorQuickOpen,ConfirmationDialog ) LineEdit *search_box; Tree *search_options; diff --git a/tools/editor/register_exporters.h b/tools/editor/register_exporters.h index dccaa0641f..30ec522a00 100644 --- a/tools/editor/register_exporters.h +++ b/tools/editor/register_exporters.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/tools/editor/reparent_dialog.cpp b/tools/editor/reparent_dialog.cpp index 38b0372232..c5b74d9006 100644 --- a/tools/editor/reparent_dialog.cpp +++ b/tools/editor/reparent_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -30,8 +30,6 @@ #include "scene/gui/label.h" #include "scene/gui/box_container.h" - - #include "print_string.h" void ReparentDialog::_notification(int p_what) { @@ -75,8 +73,8 @@ void ReparentDialog::set_current(const Set<Node*>& p_selection) { void ReparentDialog::_bind_methods() { - ObjectTypeDB::bind_method("_reparent",&ReparentDialog::_reparent); - ObjectTypeDB::bind_method("_cancel",&ReparentDialog::_cancel); + ClassDB::bind_method("_reparent",&ReparentDialog::_reparent); + ClassDB::bind_method("_cancel",&ReparentDialog::_cancel); ADD_SIGNAL( MethodInfo("reparent",PropertyInfo(Variant::NODE_PATH,"path"),PropertyInfo(Variant::BOOL,"keep_global_xform"))); } @@ -88,7 +86,7 @@ ReparentDialog::ReparentDialog() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); tree = memnew( SceneTreeEditor(false) ); tree->set_show_enabled_subscene(true); @@ -107,7 +105,7 @@ ReparentDialog::ReparentDialog() { vbc->add_child(keep_transform); - //vbc->add_margin_child("Options:",node_only);; + //vbc->add_margin_child("Options:",node_only); //cancel->connect("pressed", this,"_cancel"); diff --git a/tools/editor/reparent_dialog.h b/tools/editor/reparent_dialog.h index 1c0fbd2459..5e21f84581 100644 --- a/tools/editor/reparent_dialog.h +++ b/tools/editor/reparent_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ */ class ReparentDialog : public ConfirmationDialog { - OBJ_TYPE( ReparentDialog, ConfirmationDialog ); + GDCLASS( ReparentDialog, ConfirmationDialog ); SceneTreeEditor *tree; CheckBox *keep_transform; diff --git a/tools/editor/resources_dock.cpp b/tools/editor/resources_dock.cpp index c73c8c081c..e89262db25 100644 --- a/tools/editor/resources_dock.cpp +++ b/tools/editor/resources_dock.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "resources_dock.h" + #include "editor_node.h" #include "io/resource_loader.h" #include "io/resource_saver.h" @@ -122,14 +123,16 @@ void ResourcesDock::_notification(int p_what) { void ResourcesDock::save_resource(const String& p_path,const Ref<Resource>& p_resource) { - editor->get_editor_data().apply_changes_in_editors();; + editor->get_editor_data().apply_changes_in_editors(); int flg=0; if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources")) flg|=ResourceSaver::FLAG_COMPRESS; - //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative")) - // flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + /* + if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative")) + flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + */ - String path = Globals::get_singleton()->localize_path(p_path); + String path = GlobalConfig::get_singleton()->localize_path(p_path); Error err = ResourceSaver::save(path,p_resource,flg|ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS); if (err!=OK) { @@ -137,7 +140,7 @@ void ResourcesDock::save_resource(const String& p_path,const Ref<Resource>& p_re accept->popup_centered_minsize(); return; } -// EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type()); + //EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type()); ((Resource*)p_resource.ptr())->set_path(path); editor->emit_signal("resource_saved",p_resource); @@ -161,7 +164,7 @@ void ResourcesDock::save_resource_as(const Ref<Resource>& p_resource) { String existing; if (extensions.size()) { - existing="new_"+res->get_type().to_lower()+"."+extensions.front()->get().to_lower(); + existing="new_"+res->get_class().to_lower()+"."+extensions.front()->get().to_lower(); } file->set_current_file(existing); @@ -214,7 +217,7 @@ void ResourcesDock::_update_name(TreeItem *item) { else if (res->get_path()!="" && res->get_path().find("::")==-1) item->set_text(0,res->get_path().get_file()); else - item->set_text(0,res->get_type()+" ("+itos(res->get_instance_ID())+")"); + item->set_text(0,res->get_class()+" ("+itos(res->get_instance_ID())+")"); } @@ -267,8 +270,8 @@ void ResourcesDock::add_resource(const Ref<Resource>& p_resource) { TreeItem *res = resources->create_item(root); res->set_metadata(0,p_resource); - if (has_icon(p_resource->get_type(),"EditorIcons")) { - res->set_icon(0,get_icon(p_resource->get_type(),"EditorIcons")); + if (has_icon(p_resource->get_class(),"EditorIcons")) { + res->set_icon(0,get_icon(p_resource->get_class(),"EditorIcons")); } _update_name(res); @@ -319,12 +322,12 @@ void ResourcesDock::_create() { void ResourcesDock::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_tool_selected"),&ResourcesDock::_tool_selected); - ObjectTypeDB::bind_method(_MD("_create"),&ResourcesDock::_create); - ObjectTypeDB::bind_method(_MD("_resource_selected"),&ResourcesDock::_resource_selected); - ObjectTypeDB::bind_method(_MD("_delete"),&ResourcesDock::_delete); - ObjectTypeDB::bind_method(_MD("remove_resource"),&ResourcesDock::remove_resource); - ObjectTypeDB::bind_method(_MD("_file_action"),&ResourcesDock::_file_action); + ClassDB::bind_method(_MD("_tool_selected"),&ResourcesDock::_tool_selected); + ClassDB::bind_method(_MD("_create"),&ResourcesDock::_create); + ClassDB::bind_method(_MD("_resource_selected"),&ResourcesDock::_resource_selected); + ClassDB::bind_method(_MD("_delete"),&ResourcesDock::_delete); + ClassDB::bind_method(_MD("remove_resource"),&ResourcesDock::remove_resource); + ClassDB::bind_method(_MD("_file_action"),&ResourcesDock::_file_action); @@ -366,7 +369,7 @@ ResourcesDock::ResourcesDock(EditorNode *p_editor) { mb->set_tooltip(TTR("Save Resource")); mb->get_popup()->add_item(TTR("Save Resource"),TOOL_SAVE); mb->get_popup()->add_item(TTR("Save Resource As.."),TOOL_SAVE_AS); - mb->get_popup()->connect("item_pressed",this,"_tool_selected" ); + mb->get_popup()->connect("id_pressed",this,"_tool_selected" ); hbc->add_child( mb ); button_save=mb; @@ -377,7 +380,7 @@ ResourcesDock::ResourcesDock(EditorNode *p_editor) { mb->get_popup()->add_item(TTR("Make Local"),TOOL_MAKE_LOCAL); mb->get_popup()->add_item(TTR("Copy"),TOOL_COPY); mb->get_popup()->add_item(TTR("Paste"),TOOL_PASTE); - mb->get_popup()->connect("item_pressed",this,"_tool_selected" ); + mb->get_popup()->connect("id_pressed",this,"_tool_selected" ); hbc->add_child( mb ); button_tools=mb; diff --git a/tools/editor/resources_dock.h b/tools/editor/resources_dock.h index 978291fc3f..e225786583 100644 --- a/tools/editor/resources_dock.h +++ b/tools/editor/resources_dock.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -45,7 +45,7 @@ class EditorNode; class ResourcesDock : public VBoxContainer { - OBJ_TYPE( ResourcesDock, VBoxContainer ); + GDCLASS( ResourcesDock, VBoxContainer ); enum { TOOL_NEW, diff --git a/tools/editor/run_settings_dialog.cpp b/tools/editor/run_settings_dialog.cpp index abcfe125f3..4d69c7ad84 100644 --- a/tools/editor/run_settings_dialog.cpp +++ b/tools/editor/run_settings_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -47,8 +47,8 @@ String RunSettingsDialog::get_custom_arguments() const { void RunSettingsDialog::_bind_methods() { - ObjectTypeDB::bind_method("_run_mode_changed",&RunSettingsDialog::_run_mode_changed); - //ObjectTypeDB::bind_method("_browse_selected_file",&RunSettingsDialog::_browse_selected_file); + ClassDB::bind_method("_run_mode_changed",&RunSettingsDialog::_run_mode_changed); + //ClassDB::bind_method("_browse_selected_file",&RunSettingsDialog::_browse_selected_file); } void RunSettingsDialog::_run_mode_changed(int idx) { @@ -76,7 +76,7 @@ RunSettingsDialog::RunSettingsDialog() { VBoxContainer *vbc = memnew( VBoxContainer ); add_child(vbc); - set_child_rect(vbc); + //set_child_rect(vbc); run_mode = memnew( OptionButton ); vbc->add_margin_child(TTR("Run Mode:"),run_mode); diff --git a/tools/editor/run_settings_dialog.h b/tools/editor/run_settings_dialog.h index 09319702f3..2efc18e43f 100644 --- a/tools/editor/run_settings_dialog.h +++ b/tools/editor/run_settings_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -36,7 +36,7 @@ class RunSettingsDialog : public AcceptDialog { - OBJ_TYPE( RunSettingsDialog, AcceptDialog); + GDCLASS( RunSettingsDialog, AcceptDialog); public: enum RunMode { RUN_LOCAL_SCENE, diff --git a/tools/editor/scene_tree_dock.cpp b/tools/editor/scene_tree_dock.cpp index 16f06c7ac9..b3e4c8ed70 100644 --- a/tools/editor/scene_tree_dock.cpp +++ b/tools/editor/scene_tree_dock.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "scene_tree_dock.h" + #include "editor_node.h" #include "globals.h" #include "os/keyboard.h" @@ -80,11 +81,11 @@ void SceneTreeDock::_unhandled_key_input(InputEvent p_event) { else if (ED_IS_SHORTCUT("scene_tree/duplicate", p_event)) { _tool_selected(TOOL_DUPLICATE); } - else if (ED_IS_SHORTCUT("scene_tree/add_script", p_event)) { - _tool_selected(TOOL_CREATE_SCRIPT); + else if (ED_IS_SHORTCUT("scene_tree/attach_script", p_event)) { + _tool_selected(TOOL_ATTACH_SCRIPT); } - else if (ED_IS_SHORTCUT("scene_tree/load_script", p_event)) { - _tool_selected(TOOL_LOAD_SCRIPT); + else if(ED_IS_SHORTCUT("scene_tree/clear_script", p_event)) { + _tool_selected(TOOL_CLEAR_SCRIPT); } else if (ED_IS_SHORTCUT("scene_tree/move_up", p_event)) { _tool_selected(TOOL_MOVE_UP); @@ -104,6 +105,9 @@ void SceneTreeDock::_unhandled_key_input(InputEvent p_event) { else if (ED_IS_SHORTCUT("scene_tree/delete_no_confirm", p_event)) { _tool_selected(TOOL_ERASE, true); } + else if(ED_IS_SHORTCUT("scene_tree/copy_node_path", p_event)) { + _tool_selected(TOOL_COPY_NODE_PATH); + } else if (ED_IS_SHORTCUT("scene_tree/delete", p_event)) { _tool_selected(TOOL_ERASE); } @@ -174,7 +178,7 @@ void SceneTreeDock::_perform_instance_scenes(const Vector<String>& p_files,Node* } - Node*instanced_scene=sdata->instance(true); + Node*instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE); if (!instanced_scene) { current_option=-1; //accept->get_cancel()->hide(); @@ -198,7 +202,7 @@ void SceneTreeDock::_perform_instance_scenes(const Vector<String>& p_files,Node* } } - instanced_scene->set_filename( Globals::get_singleton()->localize_path(p_files[i]) ); + instanced_scene->set_filename( GlobalConfig::get_singleton()->localize_path(p_files[i]) ); instances.push_back(instanced_scene); } @@ -250,7 +254,7 @@ void SceneTreeDock::_replace_with_branch_scene(const String& p_file,Node* base) return; } - Node *instanced_scene=sdata->instance(true); + Node *instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE); if (!instanced_scene) { accept->get_ok()->set_text(TTR("Ugh")); accept->set_text(vformat(TTR("Error instancing scene from %s"),p_file)); @@ -269,24 +273,6 @@ void SceneTreeDock::_replace_with_branch_scene(const String& p_file,Node* base) scene_tree->set_selected(instanced_scene); } - -void SceneTreeDock::_file_selected(String p_file) { - RES p_script = ResourceLoader::load(p_file, "Script"); - if (p_script.is_null()) { - accept->get_ok()->set_text(TTR("Ugh")); - accept->set_text(vformat(TTR("Error loading script from %s"), p_file)); - accept->popup_centered_minsize(); - return; - } - - Node *selected = scene_tree->get_selected(); - if (!selected) - return; - selected->set_script(p_script.get_ref_ptr()); - editor->push_item(p_script.operator->()); - file_dialog->hide(); -} - bool SceneTreeDock::_cyclical_dependency_exists(const String& p_target_scene_path, Node* p_desired_node) { int childCount = p_desired_node->get_child_count(); @@ -313,10 +299,10 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { switch(p_tool) { case TOOL_NEW: { - - - //if (!_validate_no_foreign()) - // break; + /* + if (!_validate_no_foreign()) + break; + */ create_dialog->popup(true); } break; case TOOL_INSTANCE: { @@ -337,8 +323,10 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - //if (!_validate_no_foreign()) - // break; + /* + if (!_validate_no_foreign()) + break; + */ file->set_mode(EditorFileDialog::MODE_OPEN_FILE); List<String> extensions; @@ -363,10 +351,12 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { if (!current) break; - //if (!_validate_no_foreign()) - // break; - //connect_dialog->popup_centered_ratio(); - //connect_dialog->set_node(current); + /* + if (!_validate_no_foreign()) + break; + connect_dialog->popup_centered_ratio(); + connect_dialog->set_node(current); + */ } break; case TOOL_GROUP: { @@ -374,47 +364,48 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { Node *current = scene_tree->get_selected(); if (!current) break; - //if (!_validate_no_foreign()) - // break; - //groups_editor->set_current(current); - //groups_editor->popup_centered_ratio(); - } break; - case TOOL_LOAD_SCRIPT: { - Node *selected = scene_tree->get_selected(); - if (!selected) + /* + if (!_validate_no_foreign()) break; - - file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE); - - List<String> extensions; - ResourceLoader::get_recognized_extensions_for_type("Script", &extensions); - file_dialog->clear_filters(); - for (List<String>::Element *E = extensions.front(); E; E = E->next()) - file_dialog->add_filter("*." + E->get() + " ; " + E->get().to_upper()); - - file_dialog->popup_centered_ratio(); + groups_editor->set_current(current); + groups_editor->popup_centered_ratio(); + */ } break; - case TOOL_CREATE_SCRIPT: { + case TOOL_ATTACH_SCRIPT: { Node *selected = scene_tree->get_selected(); if (!selected) break; - //if (!_validate_no_foreign()) - // break; + /* + if (!_validate_no_foreign()) + break; + */ Ref<Script> existing = selected->get_script(); if (existing.is_valid()) editor->push_item(existing.ptr()); else { String path = selected->get_filename(); - script_create_dialog->config(selected->get_type(),path); + script_create_dialog->config(selected->get_class(),path); script_create_dialog->popup_centered(Size2(300,290)); //script_create_dialog->popup_centered_minsize(); } } break; + case TOOL_CLEAR_SCRIPT: { + Node *selected = scene_tree->get_selected(); + if(!selected) + break; + + Ref<Script> existing = selected->get_script(); + if(existing.is_valid()) { + const RefPtr empty; + selected->set_script(empty); + } + + } break; case TOOL_MOVE_UP: case TOOL_MOVE_DOWN: { @@ -502,6 +493,8 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; List<Node*> selection = editor_selection->get_selected_node_list(); + if (selection.size()==0) + break; List<Node*> reselect; @@ -684,7 +677,17 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { new_scene_from_dialog->set_title(TTR("Save New Scene As..")); } break; + case TOOL_COPY_NODE_PATH: { + List<Node*> selection = editor_selection->get_selected_node_list(); + if(List<Node*>::Element *e = selection.front()) { + if(Node *node = e->get()) { + Node *root = EditorNode::get_singleton()->get_edited_scene(); + NodePath path = root->get_path().rel_path_to(node->get_path()); + OS::get_singleton()->set_clipboard(path); + } + } + } break; } } @@ -707,8 +710,8 @@ void SceneTreeDock::_notification(int p_what) { } button_add->set_icon(get_icon("Add","EditorIcons")); button_instance->set_icon(get_icon("Instance","EditorIcons")); - button_create_script->set_icon(get_icon("Script","EditorIcons")); - button_load_script->set_icon(get_icon("Script", "EditorIcons")); + button_create_script->set_icon(get_icon("ScriptCreate","EditorIcons")); + button_clear_script->set_icon(get_icon("ScriptRemove", "EditorIcons")); filter_icon->set_texture(get_icon("Zoom","EditorIcons")); @@ -741,7 +744,7 @@ void SceneTreeDock::_node_selected() { return; } - if (ScriptEditor::get_singleton()->is_visible()) { + if (ScriptEditor::get_singleton()->is_visible_in_tree()) { restore_script_editor_on_drag=true; } @@ -763,11 +766,11 @@ Node *SceneTreeDock::_duplicate(Node *p_node, Map<Node*,Node*> &duplimap) { Ref<PackedScene> sd = ResourceLoader::load( p_node->get_filename() ); ERR_FAIL_COND_V(!sd.is_valid(),NULL); - node = sd->instance(true); + node = sd->instance(PackedScene::GEN_EDIT_STATE_INSTANCE); ERR_FAIL_COND_V(!node,NULL); //node->generate_instance_state(); } else { - Object *obj = ObjectTypeDB::instance(p_node->get_type()); + Object *obj = ClassDB::instance(p_node->get_class()); ERR_FAIL_COND_V(!obj,NULL); node = obj->cast_to<Node>(); if (!node) @@ -865,7 +868,7 @@ void SceneTreeDock::_fill_path_renames(Vector<StringName> base_path,Vector<Strin void SceneTreeDock::fill_path_renames(Node* p_node, Node *p_new_parent, List<Pair<NodePath,NodePath> > *p_renames) { - if (!bool(EDITOR_DEF("animation/autorename_animation_tracks",true))) + if (!bool(EDITOR_DEF("editors/animation/autorename_animation_tracks",true))) return; @@ -898,7 +901,7 @@ void SceneTreeDock::perform_node_renames(Node* p_base,List<Pair<NodePath,NodePat if (!r_rem_anims) r_rem_anims=&rem_anims; - if (!bool(EDITOR_DEF("animation/autorename_animation_tracks",true))) + if (!bool(EDITOR_DEF("editors/animation/autorename_animation_tracks",true))) return; if (!p_base) { @@ -1338,12 +1341,18 @@ void SceneTreeDock::_selection_changed() { _tool_selected(TOOL_MULTI_EDIT); } - if (selection_size==1 && EditorNode::get_singleton()->get_editor_selection()->get_selection().front()->key()->get_script().is_null()) { - button_create_script->show(); - button_load_script->show(); + if (selection_size==1) { + if(EditorNode::get_singleton()->get_editor_selection()->get_selection().front()->key()->get_script().is_null()) { + button_create_script->show(); + button_clear_script->hide(); + } + else { + button_create_script->hide(); + button_clear_script->show(); + } } else { button_create_script->hide(); - button_load_script->hide(); + button_clear_script->hide(); } //tool_buttons[TOOL_MULTI_EDIT]->set_disabled(EditorNode::get_singleton()->get_editor_selection()->get_selection().size()<2); @@ -1391,7 +1400,7 @@ void SceneTreeDock::_create() { String new_name = parent->validate_child_name(child); ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",edited_scene->get_path_to(parent),child->get_type(),new_name); + editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",edited_scene->get_path_to(parent),child->get_class(),new_name); editor_data->get_undo_redo().add_undo_method(sed,"live_debug_remove_node",NodePath(String(edited_scene->get_path_to(parent))+"/"+new_name)); } else { @@ -1567,10 +1576,12 @@ void SceneTreeDock::_new_scene_from(String p_file) { } int flg=0; - if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources")) + if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources")) flg|=ResourceSaver::FLAG_COMPRESS; - //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative")) - // flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + /* + if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative")) + flg|=ResourceSaver::FLAG_RELATIVE_PATHS; + */ err = ResourceSaver::save(p_file,sdata,flg); @@ -1603,7 +1614,7 @@ static bool _is_node_visible(Node* p_node) { static bool _has_visible_children(Node* p_node) { - bool collapsed = p_node->has_meta("_editor_collapsed") ? (bool)p_node->get_meta("_editor_collapsed") : false; + bool collapsed = p_node->is_displayed_folded(); if (collapsed) return false; @@ -1626,7 +1637,7 @@ static Node* _find_last_visible(Node* p_node) { Node* last=NULL; - bool collapsed = p_node->has_meta("_editor_collapsed") ? (bool)p_node->get_meta("_editor_collapsed") : false; + bool collapsed = p_node->is_displayed_folded(); if (!collapsed) { for(int i=0;i<p_node->get_child_count();i++) { @@ -1661,36 +1672,9 @@ void SceneTreeDock::_normalize_drop(Node*& to_node, int &to_pos, int p_type) { ERR_EXPLAIN("Cannot perform drop above the root node!"); ERR_FAIL(); } - Node* upper_sibling=NULL; - - for(int i=0;i<to_node->get_index();i++) { - Node *c =to_node->get_parent()->get_child(i); - if (_is_node_visible(c)) { - upper_sibling=c; - } - } - - - if (upper_sibling) { - //quite complicated, look for next visible in tree - upper_sibling=_find_last_visible(upper_sibling); - - if (upper_sibling->get_parent()==to_node->get_parent()) { - //just insert over this node because nothing is above at an upper level - to_pos=to_node->get_index(); - to_node=to_node->get_parent(); - } else { - to_pos=-1; //insert last in whathever is up - to_node=upper_sibling->get_parent(); //insert at a parent of whathever is up - } - - } else { - //just insert over this node because nothing is above at the same level - to_pos=to_node->get_index(); - to_node=to_node->get_parent(); - - } + to_pos=to_node->get_index(); + to_node=to_node->get_parent(); } else if (p_type==1) { //drop at below selected node @@ -1823,8 +1807,8 @@ void SceneTreeDock::_tree_rmb(const Vector2& p_menu_pos) { //menu->add_icon_item(get_icon("Groups","EditorIcons"),TTR("Edit Groups"),TOOL_GROUP); //menu->add_icon_item(get_icon("Connect","EditorIcons"),TTR("Edit Connections"),TOOL_CONNECT); menu->add_separator(); - menu->add_icon_shortcut(get_icon("Script", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/add_script"), TOOL_CREATE_SCRIPT); - menu->add_icon_shortcut(get_icon("Script", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/load_script"), TOOL_LOAD_SCRIPT); + menu->add_icon_shortcut(get_icon("ScriptCreate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/attach_script"), TOOL_ATTACH_SCRIPT); + menu->add_icon_shortcut(get_icon("ScriptRemove", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/clear_script"), TOOL_CLEAR_SCRIPT); menu->add_separator(); } @@ -1836,12 +1820,12 @@ void SceneTreeDock::_tree_rmb(const Vector2& p_menu_pos) { if (selection.size()==1) { menu->add_separator(); menu->add_icon_shortcut(get_icon("Blend","EditorIcons"),ED_GET_SHORTCUT("scene_tree/merge_from_scene"), TOOL_MERGE_FROM_SCENE); - menu->add_icon_shortcut(get_icon("Save","EditorIcons"),ED_GET_SHORTCUT("scene_tree/save_branch_as_scene"), TOOL_NEW_SCENE_FROM); + menu->add_icon_shortcut(get_icon("CreateNewSceneFrom","EditorIcons"),ED_GET_SHORTCUT("scene_tree/save_branch_as_scene"), TOOL_NEW_SCENE_FROM); + menu->add_separator(); + menu->add_icon_shortcut(get_icon("CopyNodePath","EditorIcons"), ED_GET_SHORTCUT("scene_tree/copy_node_path"), TOOL_COPY_NODE_PATH); } menu->add_separator(); - menu->add_icon_shortcut(get_icon("Remove","EditorIcons"), ED_SHORTCUT("scene_tree/delete", TTR("Delete Node(s)"), KEY_DELETE), TOOL_ERASE); - menu->set_size(Size2(1,1)); menu->set_pos(p_menu_pos); menu->popup(); @@ -1871,7 +1855,7 @@ void SceneTreeDock::_focus_node() { Node *node = scene_tree->get_selected(); ERR_FAIL_COND(!node); - if (node->is_type("CanvasItem")) { + if (node->is_class("CanvasItem")) { CanvasItemEditorPlugin *editor = editor_data->get_editor("2D")->cast_to<CanvasItemEditorPlugin>(); editor->get_canvas_item_editor()->focus_selection(); } else { @@ -1883,39 +1867,38 @@ void SceneTreeDock::_focus_node() { void SceneTreeDock::open_script_dialog(Node* p_for_node) { scene_tree->set_selected(p_for_node,false); - _tool_selected(TOOL_CREATE_SCRIPT); + _tool_selected(TOOL_ATTACH_SCRIPT); } void SceneTreeDock::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_tool_selected"),&SceneTreeDock::_tool_selected,DEFVAL(false)); - ObjectTypeDB::bind_method(_MD("_create"),&SceneTreeDock::_create); - //ObjectTypeDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created); - ObjectTypeDB::bind_method(_MD("_node_reparent"),&SceneTreeDock::_node_reparent); - ObjectTypeDB::bind_method(_MD("_set_owners"),&SceneTreeDock::_set_owners); - ObjectTypeDB::bind_method(_MD("_node_selected"),&SceneTreeDock::_node_selected); - ObjectTypeDB::bind_method(_MD("_node_renamed"),&SceneTreeDock::_node_renamed); - ObjectTypeDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created); - ObjectTypeDB::bind_method(_MD("_load_request"),&SceneTreeDock::_load_request); - ObjectTypeDB::bind_method(_MD("_script_open_request"),&SceneTreeDock::_script_open_request); - ObjectTypeDB::bind_method(_MD("_unhandled_key_input"),&SceneTreeDock::_unhandled_key_input); - ObjectTypeDB::bind_method(_MD("_input"),&SceneTreeDock::_input); - ObjectTypeDB::bind_method(_MD("_nodes_drag_begin"),&SceneTreeDock::_nodes_drag_begin); - ObjectTypeDB::bind_method(_MD("_delete_confirm"),&SceneTreeDock::_delete_confirm); - ObjectTypeDB::bind_method(_MD("_node_prerenamed"),&SceneTreeDock::_node_prerenamed); - ObjectTypeDB::bind_method(_MD("_import_subscene"),&SceneTreeDock::_import_subscene); - ObjectTypeDB::bind_method(_MD("_selection_changed"),&SceneTreeDock::_selection_changed); - ObjectTypeDB::bind_method(_MD("_new_scene_from"),&SceneTreeDock::_new_scene_from); - ObjectTypeDB::bind_method(_MD("_nodes_dragged"),&SceneTreeDock::_nodes_dragged); - ObjectTypeDB::bind_method(_MD("_files_dropped"),&SceneTreeDock::_files_dropped); - ObjectTypeDB::bind_method(_MD("_script_dropped"),&SceneTreeDock::_script_dropped); - ObjectTypeDB::bind_method(_MD("_tree_rmb"),&SceneTreeDock::_tree_rmb); - ObjectTypeDB::bind_method(_MD("_filter_changed"),&SceneTreeDock::_filter_changed); - ObjectTypeDB::bind_method(_MD("_focus_node"),&SceneTreeDock::_focus_node); - ObjectTypeDB::bind_method(_MD("_file_selected"), &SceneTreeDock::_file_selected); - - - ObjectTypeDB::bind_method(_MD("instance"),&SceneTreeDock::instance); + ClassDB::bind_method(_MD("_tool_selected"),&SceneTreeDock::_tool_selected,DEFVAL(false)); + ClassDB::bind_method(_MD("_create"),&SceneTreeDock::_create); + //ClassDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created); + ClassDB::bind_method(_MD("_node_reparent"),&SceneTreeDock::_node_reparent); + ClassDB::bind_method(_MD("_set_owners"),&SceneTreeDock::_set_owners); + ClassDB::bind_method(_MD("_node_selected"),&SceneTreeDock::_node_selected); + ClassDB::bind_method(_MD("_node_renamed"),&SceneTreeDock::_node_renamed); + ClassDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created); + ClassDB::bind_method(_MD("_load_request"),&SceneTreeDock::_load_request); + ClassDB::bind_method(_MD("_script_open_request"),&SceneTreeDock::_script_open_request); + ClassDB::bind_method(_MD("_unhandled_key_input"),&SceneTreeDock::_unhandled_key_input); + ClassDB::bind_method(_MD("_input"),&SceneTreeDock::_input); + ClassDB::bind_method(_MD("_nodes_drag_begin"),&SceneTreeDock::_nodes_drag_begin); + ClassDB::bind_method(_MD("_delete_confirm"),&SceneTreeDock::_delete_confirm); + ClassDB::bind_method(_MD("_node_prerenamed"),&SceneTreeDock::_node_prerenamed); + ClassDB::bind_method(_MD("_import_subscene"),&SceneTreeDock::_import_subscene); + ClassDB::bind_method(_MD("_selection_changed"),&SceneTreeDock::_selection_changed); + ClassDB::bind_method(_MD("_new_scene_from"),&SceneTreeDock::_new_scene_from); + ClassDB::bind_method(_MD("_nodes_dragged"),&SceneTreeDock::_nodes_dragged); + ClassDB::bind_method(_MD("_files_dropped"),&SceneTreeDock::_files_dropped); + ClassDB::bind_method(_MD("_script_dropped"),&SceneTreeDock::_script_dropped); + ClassDB::bind_method(_MD("_tree_rmb"),&SceneTreeDock::_tree_rmb); + ClassDB::bind_method(_MD("_filter_changed"),&SceneTreeDock::_filter_changed); + ClassDB::bind_method(_MD("_focus_node"),&SceneTreeDock::_focus_node); + + + ClassDB::bind_method(_MD("instance"),&SceneTreeDock::instance); } @@ -1936,14 +1919,15 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec ED_SHORTCUT("scene_tree/add_child_node",TTR("Add Child Node"), KEY_MASK_CMD|KEY_A); ED_SHORTCUT("scene_tree/instance_scene",TTR("Instance Child Scene")); ED_SHORTCUT("scene_tree/change_node_type", TTR("Change Type")); - ED_SHORTCUT("scene_tree/add_script", TTR("Add Script")); - ED_SHORTCUT("scene_tree/load_script", TTR("Load Script")); + ED_SHORTCUT("scene_tree/attach_script", TTR("Attach Script")); + ED_SHORTCUT("scene_tree/clear_script", TTR("Clear Script")); ED_SHORTCUT("scene_tree/move_up", TTR("Move Up"), KEY_MASK_CMD | KEY_UP); ED_SHORTCUT("scene_tree/move_down", TTR("Move Down"), KEY_MASK_CMD | KEY_DOWN); ED_SHORTCUT("scene_tree/duplicate", TTR("Duplicate"),KEY_MASK_CMD | KEY_D); ED_SHORTCUT("scene_tree/reparent", TTR("Reparent")); ED_SHORTCUT("scene_tree/merge_from_scene", TTR("Merge From Scene")); ED_SHORTCUT("scene_tree/save_branch_as_scene", TTR("Save Branch as Scene")); + ED_SHORTCUT("scene_tree/copy_node_path", TTR("Copy Node Path"), KEY_MASK_CMD|KEY_C); ED_SHORTCUT("scene_tree/delete_no_confirm", TTR("Delete (No Confirm)"), KEY_MASK_SHIFT|KEY_DELETE); ED_SHORTCUT("scene_tree/delete", TTR("Delete"), KEY_DELETE); @@ -1967,25 +1951,25 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec filter = memnew( LineEdit ); filter->set_h_size_flags(SIZE_EXPAND_FILL); filter_hbc->add_child(filter); - filter_icon = memnew( TextureFrame ); + filter_icon = memnew( TextureRect ); filter_hbc->add_child(filter_icon); - filter_icon->set_stretch_mode(TextureFrame::STRETCH_KEEP_CENTERED); + filter_icon->set_stretch_mode(TextureRect::STRETCH_KEEP_CENTERED); filter->connect("text_changed",this,"_filter_changed"); tb = memnew( ToolButton ); - tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_CREATE_SCRIPT, false)); - tb->set_tooltip(TTR("Create a new script for the selected node.")); - tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/add_script")); + tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_ATTACH_SCRIPT, false)); + tb->set_tooltip(TTR("Attach a new or existing script for the selected node.")); + tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/attach_script")); filter_hbc->add_child(tb); button_create_script=tb; tb = memnew(ToolButton); - tb->connect("pressed", this, "_tool_selected", make_binds(TOOL_LOAD_SCRIPT, false)); - tb->set_tooltip(TTR("Load a script for the selected node.")); - tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/load_script")); + tb->connect("pressed", this, "_tool_selected", make_binds(TOOL_CLEAR_SCRIPT, false)); + tb->set_tooltip(TTR("Clear a script for the selected node.")); + tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/clear_script")); filter_hbc->add_child(tb); - button_load_script = tb; + button_clear_script = tb; scene_tree = memnew( SceneTreeEditor(false,true,true )); @@ -2004,7 +1988,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec scene_tree->connect("nodes_dragged",this,"_nodes_drag_begin"); scene_tree->get_scene_tree()->connect("item_double_clicked", this, "_focus_node"); - scene_tree->get_scene_tree()->set_delayed_text_editor(true); scene_tree->set_undo_redo(&editor_data->get_undo_redo()); scene_tree->set_editor_selection(editor_selection); @@ -2015,11 +1998,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec add_child(create_dialog); create_dialog->connect("create",this,"_create"); - file_dialog = memnew(EditorFileDialog); - add_child(file_dialog); - file_dialog->hide(); - file_dialog->connect("file_selected", this, "_file_selected"); - //groups_editor = memnew( GroupsEditor ); //add_child(groups_editor); //groups_editor->set_undo_redo(&editor_data->get_undo_redo()); @@ -2060,7 +2038,7 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec menu = memnew( PopupMenu ); add_child(menu); - menu->connect("item_pressed",this,"_tool_selected"); + menu->connect("id_pressed",this,"_tool_selected"); first_enter=true; restore_script_editor_on_drag=false; diff --git a/tools/editor/scene_tree_dock.h b/tools/editor/scene_tree_dock.h index 36d4a6d208..2ee7ba3d06 100644 --- a/tools/editor/scene_tree_dock.h +++ b/tools/editor/scene_tree_dock.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -49,7 +49,7 @@ class EditorNode; class SceneTreeDock : public VBoxContainer { - OBJ_TYPE( SceneTreeDock, VBoxContainer ); + GDCLASS( SceneTreeDock, VBoxContainer ); enum Tool { @@ -58,8 +58,8 @@ class SceneTreeDock : public VBoxContainer { TOOL_REPLACE, TOOL_CONNECT, TOOL_GROUP, - TOOL_CREATE_SCRIPT, - TOOL_LOAD_SCRIPT, + TOOL_ATTACH_SCRIPT, + TOOL_CLEAR_SCRIPT, TOOL_MOVE_UP, TOOL_MOVE_DOWN, TOOL_DUPLICATE, @@ -68,6 +68,7 @@ class SceneTreeDock : public VBoxContainer { TOOL_MERGE_FROM_SCENE, TOOL_MULTI_EDIT, TOOL_ERASE, + TOOL_COPY_NODE_PATH, TOOL_BUTTON_MAX }; @@ -76,12 +77,11 @@ class SceneTreeDock : public VBoxContainer { int current_option; CreateDialog *create_dialog; - EditorFileDialog *file_dialog; ToolButton *button_add; ToolButton *button_instance; ToolButton *button_create_script; - ToolButton *button_load_script; + ToolButton *button_clear_script; SceneTreeEditor *scene_tree; @@ -103,7 +103,7 @@ class SceneTreeDock : public VBoxContainer { EditorFileDialog *new_scene_from_dialog; LineEdit *filter; - TextureFrame *filter_icon; + TextureRect *filter_icon; PopupMenu * menu; diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp index f5628d0c8f..dd1fdeb400 100644 --- a/tools/editor/scene_tree_editor.cpp +++ b/tools/editor/scene_tree_editor.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,13 +27,13 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "scene_tree_editor.h" + #include "scene/gui/label.h" #include "editor_node.h" #include "print_string.h" #include "message_queue.h" #include "scene/main/viewport.h" #include "tools/editor/plugins/canvas_item_editor_plugin.h" - #include "scene/resources/packed_scene.h" Node *SceneTreeEditor::get_scene_node() { @@ -206,29 +206,17 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id) } else if (p_id==BUTTON_VISIBILITY) { - if (n->is_type("Spatial")) { - - Spatial *ci = n->cast_to<Spatial>(); - if (!ci->is_visible() && ci->get_parent_spatial() && !ci->get_parent_spatial()->is_visible()) { - error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first.")); - error->popup_centered_minsize(); - return; - } + if (n->is_class("Spatial")) { - bool v = !bool(n->call("is_hidden")); + bool v = bool(n->call("is_visible")); undo_redo->create_action(TTR("Toggle Spatial Visible")); - undo_redo->add_do_method(n,"_set_visible_",!v); - undo_redo->add_undo_method(n,"_set_visible_",v); + undo_redo->add_do_method(n,"set_visible",!v); + undo_redo->add_undo_method(n,"set_visible",v); undo_redo->commit_action(); - } else if (n->is_type("CanvasItem")) { - CanvasItem *ci = n->cast_to<CanvasItem>(); - if (!ci->is_visible() && ci->get_parent_item() && !ci->get_parent_item()->is_visible()) { - error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first.")); - error->popup_centered_minsize(); - return; - } - bool v = !bool(n->call("is_hidden")); + } else if (n->is_class("CanvasItem")) { + + bool v = bool(n->call("is_visible")); undo_redo->create_action(TTR("Toggle CanvasItem Visible")); undo_redo->add_do_method(n,v?"hide":"show"); undo_redo->add_undo_method(n,v?"show":"hide"); @@ -237,14 +225,14 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id) } else if (p_id==BUTTON_LOCK) { - if (n->is_type("CanvasItem")) { + if (n->is_class("CanvasItem")) { n->set_meta("_edit_lock_", Variant()); _update_tree(); emit_signal("node_changed"); } } else if (p_id==BUTTON_GROUP) { - if (n->is_type("CanvasItem")) { + if (n->is_class("CanvasItem")) { n->set_meta("_edit_group_", Variant()); _update_tree(); emit_signal("node_changed"); @@ -327,7 +315,7 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) { if (p_node->has_meta("_editor_icon")) icon=p_node->get_meta("_editor_icon"); else - icon=get_icon( (has_icon(p_node->get_type(),"EditorIcons")?p_node->get_type():String("Object")),"EditorIcons"); + icon=get_icon( (has_icon(p_node->get_class(),"EditorIcons")?p_node->get_class():String("Object")),"EditorIcons"); item->set_icon(0, icon ); item->set_metadata( 0,p_node->get_path() ); @@ -376,13 +364,13 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) { if (p_node==get_scene_node() && p_node->get_scene_inherited_state().is_valid()) { item->add_button(0,get_icon("InstanceOptions","EditorIcons"),BUTTON_SUBSCENE); - item->set_tooltip(0,TTR("Inherits:")+" "+p_node->get_scene_inherited_state()->get_path()+"\n"+TTR("Type:")+" "+p_node->get_type()); + item->set_tooltip(0,TTR("Inherits:")+" "+p_node->get_scene_inherited_state()->get_path()+"\n"+TTR("Type:")+" "+p_node->get_class()); } else if (p_node!=get_scene_node() && p_node->get_filename()!="" && can_open_instance) { item->add_button(0,get_icon("InstanceOptions","EditorIcons"),BUTTON_SUBSCENE); - item->set_tooltip(0,TTR("Instance:")+" "+p_node->get_filename()+"\n"+TTR("Type:")+" "+p_node->get_type()); + item->set_tooltip(0,TTR("Instance:")+" "+p_node->get_filename()+"\n"+TTR("Type:")+" "+p_node->get_class()); } else { - item->set_tooltip(0,String(p_node->get_name())+"\n"+TTR("Type:")+" "+p_node->get_type()); + item->set_tooltip(0,String(p_node->get_name())+"\n"+TTR("Type:")+" "+p_node->get_class()); } if (can_open_instance) { @@ -396,7 +384,7 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) { item->add_button(0,get_icon("Script","EditorIcons"),BUTTON_SCRIPT); } - if (p_node->is_type("CanvasItem")) { + if (p_node->is_class("CanvasItem")) { bool is_locked = p_node->has_meta("_edit_lock_");//_edit_group_ if (is_locked) @@ -406,26 +394,28 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) { if (is_grouped) item->add_button(0,get_icon("Group", "EditorIcons"), BUTTON_GROUP); - bool h = p_node->call("is_hidden"); - if (h) - item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY); - else + bool v = p_node->call("is_visible"); + if (v) item->add_button(0,get_icon("Visible","EditorIcons"),BUTTON_VISIBILITY); + else + item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY); if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed")) p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node)); - } else if (p_node->is_type("Spatial")) { + _update_visibility_color(p_node, item); + } else if (p_node->is_class("Spatial")) { - bool h = p_node->call("is_hidden"); - if (h) - item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY); - else + bool v = p_node->call("is_visible"); + if (v) item->add_button(0,get_icon("Visible","EditorIcons"),BUTTON_VISIBILITY); + else + item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY); if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed")) p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node)); + _update_visibility_color(p_node, item); } } @@ -480,20 +470,32 @@ void SceneTreeEditor::_node_visibility_changed(Node *p_node) { bool visible=false; - if (p_node->is_type("CanvasItem")) { - visible = !p_node->call("is_hidden"); - } else if (p_node->is_type("Spatial")) { - visible = !p_node->call("is_hidden"); + if (p_node->is_class("CanvasItem")) { + visible = p_node->call("is_visible"); + CanvasItemEditor::get_singleton()->get_viewport_control()->update(); + } else if (p_node->is_class("Spatial")) { + visible = p_node->call("is_visible"); } - if (!visible) - item->set_button(0,idx,get_icon("Hidden","EditorIcons")); - else + if (visible) item->set_button(0,idx,get_icon("Visible","EditorIcons")); + else + item->set_button(0,idx,get_icon("Hidden","EditorIcons")); - + _update_visibility_color(p_node, item); } +void SceneTreeEditor::_update_visibility_color(Node *p_node, TreeItem *p_item) { + if (p_node->is_class("CanvasItem") || p_node->is_class("Spatial")) { + Color color(1,1,1,1); + bool visible_on_screen = p_node->call("is_visible"); + if (!visible_on_screen) { + color = Color(0.6,0.6,0.6,1); + } + int idx=p_item->get_button_by_id(0,BUTTON_VISIBILITY); + p_item->set_button_color(0,idx,color); + } +} void SceneTreeEditor::_node_script_changed(Node *p_node) { @@ -524,7 +526,7 @@ void SceneTreeEditor::_node_removed(Node *p_node) { if (p_node->is_connected("script_changed",this,"_node_script_changed")) p_node->disconnect("script_changed",this,"_node_script_changed"); - if (p_node->is_type("Spatial") || p_node->is_type("CanvasItem")) { + if (p_node->is_class("Spatial") || p_node->is_class("CanvasItem")) { if (p_node->is_connected("visibility_changed",this,"_node_visibility_changed")) p_node->disconnect("visibility_changed",this,"_node_visibility_changed"); } @@ -671,8 +673,8 @@ void SceneTreeEditor::_notification(int p_what) { EditorSettings::get_singleton()->connect("settings_changed",this,"_editor_settings_changed"); -// get_scene()->connect("tree_changed",this,"_tree_changed",Vector<Variant>(),CONNECT_DEFERRED); -// get_scene()->connect("node_removed",this,"_node_removed",Vector<Variant>(),CONNECT_DEFERRED); + //get_scene()->connect("tree_changed",this,"_tree_changed",Vector<Variant>(),CONNECT_DEFERRED); + //get_scene()->connect("node_removed",this,"_node_removed",Vector<Variant>(),CONNECT_DEFERRED); _update_tree(); } if (p_what==NOTIFICATION_EXIT_TREE) { @@ -725,6 +727,12 @@ void SceneTreeEditor::set_selected(Node *p_node,bool p_emit_selected) { TreeItem* item=p_node?_find(tree->get_root(),p_node->get_path()):NULL; if (item) { + // make visible when it's collapsed + TreeItem* node=item->get_parent(); + while (node && node!=tree->get_root()) { + node->set_collapsed(false); + node=node->get_parent(); + } item->select(0); item->set_as_cursor(0); selected=p_node; @@ -947,13 +955,13 @@ Variant SceneTreeEditor::get_drag_data_fw(const Point2& p_point,Control* p_from) if (i<list_max){ HBoxContainer *hb = memnew( HBoxContainer ); - TextureFrame *tf = memnew(TextureFrame); + TextureRect *tf = memnew(TextureRect); tf->set_texture(icons[i]); hb->add_child(tf); Label *label = memnew( Label( selected[i]->get_name() ) ); hb->add_child(label); vb->add_child(hb); - hb->set_opacity(opacity_item); + hb->set_modulate(Color(1,1,1,opacity_item)); opacity_item -= opacity_step; } NodePath p = selected[i]->get_path(); @@ -1075,14 +1083,14 @@ void SceneTreeEditor::_warning_changed(Node* p_for_node) { //should use a timer update_timer->start(); -// print_line("WARNING CHANGED "+String(p_for_node->get_name())); + //print_line("WARNING CHANGED "+String(p_for_node->get_name())); } void SceneTreeEditor::_editor_settings_changed() { - bool enable_rl = EditorSettings::get_singleton()->get("scenetree_editor/draw_relationship_lines"); - Color rl_color = EditorSettings::get_singleton()->get("scenetree_editor/relationship_line_color"); + bool enable_rl = EditorSettings::get_singleton()->get("docks/scene_tree/draw_relationship_lines"); + Color rl_color = EditorSettings::get_singleton()->get("docks/scene_tree/relationship_line_color"); if (enable_rl) { tree->add_constant_override("draw_relationship_lines",1); @@ -1096,31 +1104,31 @@ void SceneTreeEditor::_editor_settings_changed() { void SceneTreeEditor::_bind_methods() { - ObjectTypeDB::bind_method("_tree_changed",&SceneTreeEditor::_tree_changed); - ObjectTypeDB::bind_method("_update_tree",&SceneTreeEditor::_update_tree); - ObjectTypeDB::bind_method("_node_removed",&SceneTreeEditor::_node_removed); - ObjectTypeDB::bind_method("_selected_changed",&SceneTreeEditor::_selected_changed); - ObjectTypeDB::bind_method("_renamed",&SceneTreeEditor::_renamed); - ObjectTypeDB::bind_method("_rename_node",&SceneTreeEditor::_rename_node); - ObjectTypeDB::bind_method("_test_update_tree",&SceneTreeEditor::_test_update_tree); - ObjectTypeDB::bind_method("_cell_multi_selected",&SceneTreeEditor::_cell_multi_selected); - ObjectTypeDB::bind_method("_selection_changed",&SceneTreeEditor::_selection_changed); - ObjectTypeDB::bind_method("_cell_button_pressed",&SceneTreeEditor::_cell_button_pressed); - ObjectTypeDB::bind_method("_cell_collapsed",&SceneTreeEditor::_cell_collapsed); - ObjectTypeDB::bind_method("_subscene_option",&SceneTreeEditor::_subscene_option); - ObjectTypeDB::bind_method("_rmb_select",&SceneTreeEditor::_rmb_select); - ObjectTypeDB::bind_method("_warning_changed",&SceneTreeEditor::_warning_changed); + ClassDB::bind_method("_tree_changed",&SceneTreeEditor::_tree_changed); + ClassDB::bind_method("_update_tree",&SceneTreeEditor::_update_tree); + ClassDB::bind_method("_node_removed",&SceneTreeEditor::_node_removed); + ClassDB::bind_method("_selected_changed",&SceneTreeEditor::_selected_changed); + ClassDB::bind_method("_renamed",&SceneTreeEditor::_renamed); + ClassDB::bind_method("_rename_node",&SceneTreeEditor::_rename_node); + ClassDB::bind_method("_test_update_tree",&SceneTreeEditor::_test_update_tree); + ClassDB::bind_method("_cell_multi_selected",&SceneTreeEditor::_cell_multi_selected); + ClassDB::bind_method("_selection_changed",&SceneTreeEditor::_selection_changed); + ClassDB::bind_method("_cell_button_pressed",&SceneTreeEditor::_cell_button_pressed); + ClassDB::bind_method("_cell_collapsed",&SceneTreeEditor::_cell_collapsed); + ClassDB::bind_method("_subscene_option",&SceneTreeEditor::_subscene_option); + ClassDB::bind_method("_rmb_select",&SceneTreeEditor::_rmb_select); + ClassDB::bind_method("_warning_changed",&SceneTreeEditor::_warning_changed); - ObjectTypeDB::bind_method("_node_script_changed",&SceneTreeEditor::_node_script_changed); - ObjectTypeDB::bind_method("_node_visibility_changed",&SceneTreeEditor::_node_visibility_changed); + ClassDB::bind_method("_node_script_changed",&SceneTreeEditor::_node_script_changed); + ClassDB::bind_method("_node_visibility_changed",&SceneTreeEditor::_node_visibility_changed); - ObjectTypeDB::bind_method("_editor_settings_changed", &SceneTreeEditor::_editor_settings_changed); + ClassDB::bind_method("_editor_settings_changed", &SceneTreeEditor::_editor_settings_changed); - ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &SceneTreeEditor::get_drag_data_fw); - ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &SceneTreeEditor::can_drop_data_fw); - ObjectTypeDB::bind_method(_MD("drop_data_fw"), &SceneTreeEditor::drop_data_fw); + ClassDB::bind_method(_MD("get_drag_data_fw"), &SceneTreeEditor::get_drag_data_fw); + ClassDB::bind_method(_MD("can_drop_data_fw"), &SceneTreeEditor::can_drop_data_fw); + ClassDB::bind_method(_MD("drop_data_fw"), &SceneTreeEditor::drop_data_fw); - ObjectTypeDB::bind_method(_MD("update_tree"), &SceneTreeEditor::update_tree); + ClassDB::bind_method(_MD("update_tree"), &SceneTreeEditor::update_tree); ADD_SIGNAL( MethodInfo("node_selected") ); ADD_SIGNAL( MethodInfo("node_renamed") ); @@ -1128,7 +1136,7 @@ void SceneTreeEditor::_bind_methods() { ADD_SIGNAL( MethodInfo("node_changed") ); ADD_SIGNAL( MethodInfo("nodes_dragged") ); ADD_SIGNAL( MethodInfo("nodes_rearranged",PropertyInfo(Variant::ARRAY,"paths"),PropertyInfo(Variant::NODE_PATH,"to_path"),PropertyInfo(Variant::INT,"type") ) ); - ADD_SIGNAL( MethodInfo("files_dropped",PropertyInfo(Variant::STRING_ARRAY,"files"),PropertyInfo(Variant::NODE_PATH,"to_path"),PropertyInfo(Variant::INT,"type") ) ); + ADD_SIGNAL( MethodInfo("files_dropped",PropertyInfo(Variant::POOL_STRING_ARRAY,"files"),PropertyInfo(Variant::NODE_PATH,"to_path"),PropertyInfo(Variant::INT,"type") ) ); ADD_SIGNAL( MethodInfo("script_dropped",PropertyInfo(Variant::STRING,"file"),PropertyInfo(Variant::NODE_PATH,"to_path"))); ADD_SIGNAL( MethodInfo("rmb_pressed",PropertyInfo(Variant::VECTOR2,"pos")) ) ; @@ -1180,7 +1188,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open tree->connect("item_edited", this,"_renamed",varray(),CONNECT_DEFERRED); tree->connect("multi_selected",this,"_cell_multi_selected"); tree->connect("button_pressed",this,"_cell_button_pressed"); -// tree->connect("item_edited", this,"_renamed",Vector<Variant>(),true); + //tree->connect("item_edited", this,"_renamed",Vector<Variant>(),true); error = memnew( AcceptDialog ); add_child(error); @@ -1204,14 +1212,14 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open instance_menu->add_item(TTR("Discard Instancing"),SCENE_MENU_CLEAR_INSTANCING); instance_menu->add_separator(); instance_menu->add_item(TTR("Open in Editor"),SCENE_MENU_OPEN); - instance_menu->connect("item_pressed",this,"_subscene_option"); + instance_menu->connect("id_pressed",this,"_subscene_option"); add_child(instance_menu); inheritance_menu = memnew( PopupMenu ); inheritance_menu->add_item(TTR("Clear Inheritance"),SCENE_MENU_CLEAR_INHERITANCE); inheritance_menu->add_separator(); inheritance_menu->add_item(TTR("Open in Editor"),SCENE_MENU_OPEN_INHERITED); - inheritance_menu->connect("item_pressed",this,"_subscene_option"); + inheritance_menu->connect("id_pressed",this,"_subscene_option"); add_child(inheritance_menu); @@ -1227,7 +1235,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open add_child(update_timer); script_types = memnew(List<StringName>); - ObjectTypeDB::get_inheriters_from("Script", script_types); + ClassDB::get_inheriters_from_class("Script", script_types); } @@ -1258,7 +1266,7 @@ void SceneTreeDialog::_notification(int p_what) { get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size())); } - if (p_what==NOTIFICATION_VISIBILITY_CHANGED && is_visible()) { + if (p_what==NOTIFICATION_VISIBILITY_CHANGED && is_visible_in_tree()) { tree->update_tree(); } @@ -1283,8 +1291,8 @@ void SceneTreeDialog::_select() { void SceneTreeDialog::_bind_methods() { - ObjectTypeDB::bind_method("_select",&SceneTreeDialog::_select); - ObjectTypeDB::bind_method("_cancel",&SceneTreeDialog::_cancel); + ClassDB::bind_method("_select",&SceneTreeDialog::_select); + ClassDB::bind_method("_cancel",&SceneTreeDialog::_cancel); ADD_SIGNAL( MethodInfo("selected",PropertyInfo(Variant::NODE_PATH,"path"))); } @@ -1296,7 +1304,7 @@ SceneTreeDialog::SceneTreeDialog() { tree = memnew( SceneTreeEditor(false,false) ); add_child(tree); - set_child_rect(tree); + //set_child_rect(tree); tree->get_scene_tree()->connect("item_activated",this,"_select"); diff --git a/tools/editor/scene_tree_editor.h b/tools/editor/scene_tree_editor.h index 12d85ecdeb..5586f02c00 100644 --- a/tools/editor/scene_tree_editor.h +++ b/tools/editor/scene_tree_editor.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -40,7 +40,7 @@ */ class SceneTreeEditor : public Control { - OBJ_TYPE( SceneTreeEditor, Control ); + GDCLASS( SceneTreeEditor, Control ); EditorSelection *editor_selection; @@ -117,6 +117,7 @@ class SceneTreeEditor : public Control { void _update_selection(TreeItem *item); void _node_script_changed(Node *p_node); void _node_visibility_changed(Node *p_node); + void _update_visibility_color(Node *p_node, TreeItem *p_item); void _subscene_option(int p_idx); void _node_replace_owner(Node* p_base,Node* p_node,Node* p_root); @@ -171,11 +172,11 @@ public: class SceneTreeDialog : public ConfirmationDialog { - OBJ_TYPE( SceneTreeDialog, ConfirmationDialog ); + GDCLASS( SceneTreeDialog, ConfirmationDialog ); SceneTreeEditor *tree; -// Button *select; -// Button *cancel; + //Button *select; + //Button *cancel; void update_tree(); void _select(); diff --git a/tools/editor/script_create_dialog.cpp b/tools/editor/script_create_dialog.cpp index 62d5c7cd84..da01cdefe5 100644 --- a/tools/editor/script_create_dialog.cpp +++ b/tools/editor/script_create_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "script_create_dialog.h" + #include "script_language.h" #include "globals.h" #include "io/resource_saver.h" @@ -38,7 +39,7 @@ void ScriptCreateDialog::config(const String& p_base_name,const String&p_base_pa class_name->set_text(""); parent_name->set_text(p_base_name); if (p_base_path!="") { - initial_bp=p_base_path.basename(); + initial_bp=p_base_path.get_basename(); file_path->set_text(initial_bp+"."+ScriptServer::get_language( language_menu->get_selected() )->get_extension()); } else { initial_bp=""; @@ -96,8 +97,20 @@ void ScriptCreateDialog::_class_name_changed(const String& p_name) { void ScriptCreateDialog::ok_pressed() { - if (class_name->is_editable() && !_validate(class_name->get_text())) { + if (create_new){ + _create_new(); + } else { + _load_exist(); + } + + create_new=true; + _update_controls(); + +} + +void ScriptCreateDialog::_create_new() { + if (class_name->is_editable() && !_validate(class_name->get_text())) { alert->set_text(TTR("Class name is invalid!")); alert->popup_centered_minsize(); return; @@ -105,21 +118,14 @@ void ScriptCreateDialog::ok_pressed() { if (!_validate(parent_name->get_text())) { alert->set_text(TTR("Parent class name is invalid!")); alert->popup_centered_minsize(); - return; - } - String cname; if (class_name->is_editable()) cname=class_name->get_text(); - - - Ref<Script> scr = ScriptServer::get_language( language_menu->get_selected() )->get_template(cname,parent_name->get_text()); - //scr->set_source_code(text); String selected_language = language_menu->get_item_text(language_menu->get_selected()); editor_settings->set_last_selected_language(selected_language); @@ -127,34 +133,40 @@ void ScriptCreateDialog::ok_pressed() { if (cname!="") scr->set_name(cname); - if (!internal->is_pressed()) { - - - String lpath = Globals::get_singleton()->localize_path(file_path->get_text()); + String lpath = GlobalConfig::get_singleton()->localize_path(file_path->get_text()); scr->set_path(lpath); if (!path_valid) { - alert->set_text(TTR("Invalid path!")); alert->popup_centered_minsize(); return; - } Error err = ResourceSaver::save(lpath,scr,ResourceSaver::FLAG_CHANGE_PATH); if (err!=OK) { - alert->set_text(TTR("Could not create script in filesystem.")); alert->popup_centered_minsize(); return; } - //scr->set_path(lpath); - //EditorFileSystem::get_singleton()->update_file(lpath,scr->get_type()); + } + hide(); + emit_signal("script_created",scr); + +} +void ScriptCreateDialog::_load_exist() { + + String path=file_path->get_text(); + RES p_script = ResourceLoader::load(path, "Script"); + if (p_script.is_null()) { + alert->get_ok()->set_text(TTR("Ugh")); + alert->set_text(vformat(TTR("Error loading script from %s"), path)); + alert->popup_centered_minsize(); + return; } hide(); - emit_signal("script_created",scr); + emit_signal("script_created",p_script.get_ref_ptr()); } @@ -166,10 +178,35 @@ void ScriptCreateDialog::_lang_changed(int l) { } else { class_name->set_editable(false); } - if (file_path->get_text().basename()==initial_bp) { - file_path->set_text(initial_bp+"."+ScriptServer::get_language( l )->get_extension()); - _path_changed(file_path->get_text()); + + String selected_ext="."+ScriptServer::get_language( l )->get_extension(); + String path=file_path->get_text(); + String extension=""; + if (path.find(".")>=0) { + extension=path.get_extension(); + } + + if (extension.length()==0) { + // add extension if none + path+=selected_ext; + _path_changed(path); + } else { + // change extension by selected language + List<String> extensions; + // get all possible extensions for script + for (int l=0;l<language_menu->get_item_count();l++) { + ScriptServer::get_language( l )->get_recognized_extensions(&extensions); + } + + for(List<String>::Element *E=extensions.front();E;E=E->next()) { + if (E->get().nocasecmp_to(extension)==0) { + path=path.get_basename()+selected_ext; + _path_changed(path); + break; + } + } } + file_path->set_text(path); _class_name_changed(class_name->get_text()); } @@ -191,8 +228,10 @@ void ScriptCreateDialog::_browse_path() { file_browse->clear_filters(); List<String> extensions; - int l=language_menu->get_selected(); - ScriptServer::get_language( l )->get_recognized_extensions(&extensions); + // get all possible extensions for script + for (int l=0;l<language_menu->get_item_count();l++) { + ScriptServer::get_language( l )->get_recognized_extensions(&extensions); + } for(List<String>::Element *E=extensions.front();E;E=E->next()) { file_browse->add_filter("*."+E->get()); @@ -205,7 +244,7 @@ void ScriptCreateDialog::_browse_path() { void ScriptCreateDialog::_file_selected(const String& p_file) { - String p = Globals::get_singleton()->localize_path(p_file); + String p = GlobalConfig::get_singleton()->localize_path(p_file); file_path->set_text(p); _path_changed(p); @@ -224,7 +263,7 @@ void ScriptCreateDialog::_path_changed(const String& p_path) { } - p = Globals::get_singleton()->localize_path(p); + p = GlobalConfig::get_singleton()->localize_path(p); if (!p.begins_with("res://")) { path_error_label->set_text(TTR("Path is not local")); @@ -246,58 +285,66 @@ void ScriptCreateDialog::_path_changed(const String& p_path) { memdelete(d); } - - FileAccess *f = FileAccess::create(FileAccess::ACCESS_RESOURCES); - - if (f->file_exists(p)) { - - path_error_label->set_text(TTR("File exists")); - path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8)); - memdelete(f); - return; - } - + create_new=!f->file_exists(p); memdelete(f); - String extension=p.extension(); + String extension=p.get_extension(); List<String> extensions; - int l=language_menu->get_selected(); - ScriptServer::get_language( l )->get_recognized_extensions(&extensions); + // get all possible extensions for script + for (int l=0;l<language_menu->get_item_count();l++) { + ScriptServer::get_language( l )->get_recognized_extensions(&extensions); + } bool found=false; + int index=0; for(List<String>::Element *E=extensions.front();E;E=E->next()) { if (E->get().nocasecmp_to(extension)==0) { + language_menu->select(index); // change Language option by extension found=true; break; } + index++; } if (!found) { - path_error_label->set_text(TTR("Invalid extension")); path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8)); return; } + _update_controls(); - path_error_label->set_text(TTR("Valid path")); path_error_label->add_color_override("font_color",Color(0,1.0,0.8,0.8)); path_valid=true; } +void ScriptCreateDialog::_update_controls() { + + if (create_new) { + path_error_label->set_text(TTR("Create new script")); + get_ok()->set_text(TTR("Create")); + } else { + path_error_label->set_text(TTR("Load existing script")); + get_ok()->set_text(TTR("Load")); + } + parent_name->set_editable(create_new); + internal->set_disabled(!create_new); + +} + void ScriptCreateDialog::_bind_methods() { - ObjectTypeDB::bind_method("_class_name_changed",&ScriptCreateDialog::_class_name_changed); - ObjectTypeDB::bind_method("_lang_changed",&ScriptCreateDialog::_lang_changed); - ObjectTypeDB::bind_method("_built_in_pressed",&ScriptCreateDialog::_built_in_pressed); - ObjectTypeDB::bind_method("_browse_path",&ScriptCreateDialog::_browse_path); - ObjectTypeDB::bind_method("_file_selected",&ScriptCreateDialog::_file_selected); - ObjectTypeDB::bind_method("_path_changed",&ScriptCreateDialog::_path_changed); + ClassDB::bind_method("_class_name_changed",&ScriptCreateDialog::_class_name_changed); + ClassDB::bind_method("_lang_changed",&ScriptCreateDialog::_lang_changed); + ClassDB::bind_method("_built_in_pressed",&ScriptCreateDialog::_built_in_pressed); + ClassDB::bind_method("_browse_path",&ScriptCreateDialog::_browse_path); + ClassDB::bind_method("_file_selected",&ScriptCreateDialog::_file_selected); + ClassDB::bind_method("_path_changed",&ScriptCreateDialog::_path_changed); ADD_SIGNAL(MethodInfo("script_created",PropertyInfo(Variant::OBJECT,"script",PROPERTY_HINT_RESOURCE_TYPE,"Script"))); } @@ -307,7 +354,7 @@ ScriptCreateDialog::ScriptCreateDialog() { VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); - set_child_rect(vb); + //set_child_rect(vb); class_name = memnew( LineEdit ); @@ -376,7 +423,7 @@ ScriptCreateDialog::ScriptCreateDialog() { set_size(Size2(200,150)); set_hide_on_ok(false); - set_title(TTR("Create Node Script")); + set_title(TTR("Attach Node Script")); file_browse = memnew( EditorFileDialog ); file_browse->connect("file_selected",this,"_file_selected"); @@ -385,4 +432,6 @@ ScriptCreateDialog::ScriptCreateDialog() { alert = memnew( AcceptDialog ); add_child(alert); _lang_changed(0); + + create_new=true; } diff --git a/tools/editor/script_create_dialog.h b/tools/editor/script_create_dialog.h index c71ea16d39..df16efc73c 100644 --- a/tools/editor/script_create_dialog.h +++ b/tools/editor/script_create_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -37,7 +37,7 @@ #include "scene/gui/check_button.h" class ScriptCreateDialog : public ConfirmationDialog { - OBJ_TYPE(ScriptCreateDialog,ConfirmationDialog); + GDCLASS(ScriptCreateDialog,ConfirmationDialog); LineEdit *class_name; Label *error_label; @@ -50,6 +50,7 @@ class ScriptCreateDialog : public ConfirmationDialog { VBoxContainer *path_vb; AcceptDialog *alert; bool path_valid; + bool create_new; String initial_bp; EditorSettings *editor_settings; @@ -62,6 +63,9 @@ class ScriptCreateDialog : public ConfirmationDialog { void _browse_path(); void _file_selected(const String& p_file); virtual void ok_pressed(); + void _create_new(); + void _load_exist(); + void _update_controls(); protected: static void _bind_methods(); diff --git a/tools/editor/script_editor_debugger.cpp b/tools/editor/script_editor_debugger.cpp index c8170ca9a3..d5cca06820 100644 --- a/tools/editor/script_editor_debugger.cpp +++ b/tools/editor/script_editor_debugger.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "script_editor_debugger.h" + #include "scene/gui/separator.h" #include "scene/gui/label.h" #include "scene/gui/split_container.h" @@ -46,7 +47,7 @@ class ScriptEditorDebuggerVariables : public Object { - OBJ_TYPE( ScriptEditorDebuggerVariables, Object ); + GDCLASS( ScriptEditorDebuggerVariables, Object ); List<PropertyInfo> props; Map<StringName,Variant> values; @@ -114,7 +115,7 @@ public: class ScriptEditorDebuggerInspectedObject : public Object { - OBJ_TYPE( ScriptEditorDebuggerInspectedObject, Object); + GDCLASS( ScriptEditorDebuggerInspectedObject, Object); @@ -177,7 +178,7 @@ void ScriptEditorDebugger::debug_next() { ERR_FAIL_COND(!breaked); ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); Array msg; msg.push_back("next"); ppeer->put_var(msg); @@ -189,7 +190,7 @@ void ScriptEditorDebugger::debug_step() { ERR_FAIL_COND(!breaked); ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); Array msg; msg.push_back("step"); @@ -202,7 +203,7 @@ void ScriptEditorDebugger::debug_break() { ERR_FAIL_COND(breaked); ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); Array msg; msg.push_back("break"); @@ -214,7 +215,7 @@ void ScriptEditorDebugger::debug_continue() { ERR_FAIL_COND(!breaked); ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); OS::get_singleton()->enable_for_stealing_focus(EditorNode::get_singleton()->get_child_process_id()); @@ -294,7 +295,7 @@ void ScriptEditorDebugger::_scene_tree_property_select_object(ObjectID p_object) void ScriptEditorDebugger::_scene_tree_request() { ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); Array msg; msg.push_back("request_scene_tree"); @@ -305,7 +306,7 @@ void ScriptEditorDebugger::_scene_tree_request() { void ScriptEditorDebugger::_video_mem_request() { ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); Array msg; msg.push_back("request_video_mem"); @@ -520,7 +521,7 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat d["frame"]=i; s->set_metadata(0,d); -// String line = itos(i)+" - "+String(d["file"])+":"+itos(d["line"])+" - at func: "+d["function"]; + //String line = itos(i)+" - "+String(d["file"])+":"+itos(d["line"])+" - at func: "+d["function"]; String line = itos(i)+" - "+String(d["file"])+":"+itos(d["line"]); s->set_text(0,line); @@ -580,8 +581,7 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat String t = p_data[i]; //LOG - if (EditorNode::get_log()->is_hidden()) { - log_forced_visible=true; + if (!EditorNode::get_log()->is_visible()) { if (EditorNode::get_singleton()->are_bottom_panels_hidden()) { EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log()); } @@ -826,7 +826,7 @@ void ScriptEditorDebugger::_performance_draw() { Ref<StyleBox> graph_sb = get_stylebox("normal","TextEdit"); Ref<Font> graph_font = get_font("font","TextEdit"); - int cols = Math::ceil(Math::sqrt(which.size())); + int cols = Math::ceil(Math::sqrt((float)which.size())); int rows = (which.size()+1)/cols; if (which.size()==1) rows=1; @@ -906,7 +906,7 @@ void ScriptEditorDebugger::_notification(int p_what) { inspect_scene_tree_timeout-=get_process_delta_time(); if (inspect_scene_tree_timeout<0) { inspect_scene_tree_timeout=EditorSettings::get_singleton()->get("debugger/scene_tree_refresh_interval"); - if (inspect_scene_tree->is_visible()) { + if (inspect_scene_tree->is_visible_in_tree()) { _scene_tree_request(); if (inspected_object_id!=0) { @@ -922,7 +922,7 @@ void ScriptEditorDebugger::_notification(int p_what) { inspect_edited_object_timeout-=get_process_delta_time(); if (inspect_edited_object_timeout<0) { inspect_edited_object_timeout=EditorSettings::get_singleton()->get("debugger/remote_inspect_refresh_interval"); - if (inspect_scene_tree->is_visible() && inspected_object_id) { + if (inspect_scene_tree->is_visible_in_tree() && inspected_object_id) { //take the chance and re-inspect selected object Array msg; msg.push_back("inspect_object"); @@ -957,7 +957,6 @@ void ScriptEditorDebugger::_notification(int p_what) { break; EditorNode::get_log()->add_message("** Debug Process Started **"); - log_forced_visible=false; ppeer->set_stream_peer(connection); @@ -995,7 +994,7 @@ void ScriptEditorDebugger::_notification(int p_what) { } }; - if (!connection->is_connected()) { + if (!connection->is_connected_to_host()) { stop(); editor->notify_child_process_exited(); //somehow, exited break; @@ -1089,11 +1088,11 @@ void ScriptEditorDebugger::start() { stop(); - if (!EditorNode::get_log()->is_visible()) { - EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log()); + if (is_visible_in_tree()) { + EditorNode::get_singleton()->make_bottom_panel_item_visible(this); } - uint16_t port = GLOBAL_DEF("debug/remote_port",6007); + uint16_t port = GLOBAL_GET("network/debug/remote_port"); perf_history.clear(); for(int i=0;i<Performance::MONITOR_MAX;i++) { @@ -1132,13 +1131,6 @@ void ScriptEditorDebugger::stop(){ pending_in_queue=0; message.clear(); - if (log_forced_visible) { - //EditorNode::get_singleton()->make_bottom_panel_item_visible(this); - if (EditorNode::get_log()->is_visible()) - EditorNode::get_singleton()->hide_bottom_panel(); - log_forced_visible=false; - } - node_path_cache.clear(); res_path_cache.clear(); profiler_signature.clear(); @@ -1155,7 +1147,7 @@ void ScriptEditorDebugger::stop(){ if (hide_on_stop) { - if (is_visible()) + if (is_visible_in_tree()) EditorNode::get_singleton()->hide_bottom_panel(); emit_signal("show_debugger",false); } @@ -1192,12 +1184,12 @@ void ScriptEditorDebugger::_profiler_activate(bool p_enable) { void ScriptEditorDebugger::_profiler_seeked() { - if (!connection.is_valid() || !connection->is_connected()) + if (!connection.is_valid() || !connection->is_connected_to_host()) return; if (breaked) return; - debug_break();; + debug_break(); } @@ -1214,7 +1206,7 @@ void ScriptEditorDebugger::_stack_dump_frame_selected() { emit_signal("goto_script_line",s,int(d["line"])-1); ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); /// Array msg; @@ -1629,7 +1621,7 @@ void ScriptEditorDebugger::set_hide_on_stop(bool p_hide) { void ScriptEditorDebugger::_paused() { ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected()); + ERR_FAIL_COND(!connection->is_connected_to_host()); if (!breaked && EditorNode::get_singleton()->get_pause_button()->is_pressed()) { debug_break(); @@ -1643,39 +1635,39 @@ void ScriptEditorDebugger::_paused() { void ScriptEditorDebugger::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_stack_dump_frame_selected"),&ScriptEditorDebugger::_stack_dump_frame_selected); - ObjectTypeDB::bind_method(_MD("debug_next"),&ScriptEditorDebugger::debug_next); - ObjectTypeDB::bind_method(_MD("debug_step"),&ScriptEditorDebugger::debug_step); - ObjectTypeDB::bind_method(_MD("debug_break"),&ScriptEditorDebugger::debug_break); - ObjectTypeDB::bind_method(_MD("debug_continue"),&ScriptEditorDebugger::debug_continue); - ObjectTypeDB::bind_method(_MD("_output_clear"),&ScriptEditorDebugger::_output_clear); - ObjectTypeDB::bind_method(_MD("_performance_draw"),&ScriptEditorDebugger::_performance_draw); - ObjectTypeDB::bind_method(_MD("_performance_select"),&ScriptEditorDebugger::_performance_select); - ObjectTypeDB::bind_method(_MD("_scene_tree_request"),&ScriptEditorDebugger::_scene_tree_request); - ObjectTypeDB::bind_method(_MD("_video_mem_request"),&ScriptEditorDebugger::_video_mem_request); - ObjectTypeDB::bind_method(_MD("_live_edit_set"),&ScriptEditorDebugger::_live_edit_set); - ObjectTypeDB::bind_method(_MD("_live_edit_clear"),&ScriptEditorDebugger::_live_edit_clear); - - ObjectTypeDB::bind_method(_MD("_error_selected"),&ScriptEditorDebugger::_error_selected); - ObjectTypeDB::bind_method(_MD("_error_stack_selected"),&ScriptEditorDebugger::_error_stack_selected); - ObjectTypeDB::bind_method(_MD("_profiler_activate"),&ScriptEditorDebugger::_profiler_activate); - ObjectTypeDB::bind_method(_MD("_profiler_seeked"),&ScriptEditorDebugger::_profiler_seeked); - - ObjectTypeDB::bind_method(_MD("_paused"),&ScriptEditorDebugger::_paused); - - ObjectTypeDB::bind_method(_MD("_scene_tree_selected"),&ScriptEditorDebugger::_scene_tree_selected); - ObjectTypeDB::bind_method(_MD("_scene_tree_folded"),&ScriptEditorDebugger::_scene_tree_folded); - - - ObjectTypeDB::bind_method(_MD("live_debug_create_node"),&ScriptEditorDebugger::live_debug_create_node); - ObjectTypeDB::bind_method(_MD("live_debug_instance_node"),&ScriptEditorDebugger::live_debug_instance_node); - ObjectTypeDB::bind_method(_MD("live_debug_remove_node"),&ScriptEditorDebugger::live_debug_remove_node); - ObjectTypeDB::bind_method(_MD("live_debug_remove_and_keep_node"),&ScriptEditorDebugger::live_debug_remove_and_keep_node); - ObjectTypeDB::bind_method(_MD("live_debug_restore_node"),&ScriptEditorDebugger::live_debug_restore_node); - ObjectTypeDB::bind_method(_MD("live_debug_duplicate_node"),&ScriptEditorDebugger::live_debug_duplicate_node); - ObjectTypeDB::bind_method(_MD("live_debug_reparent_node"),&ScriptEditorDebugger::live_debug_reparent_node); - ObjectTypeDB::bind_method(_MD("_scene_tree_property_select_object"),&ScriptEditorDebugger::_scene_tree_property_select_object); - ObjectTypeDB::bind_method(_MD("_scene_tree_property_value_edited"),&ScriptEditorDebugger::_scene_tree_property_value_edited); + ClassDB::bind_method(_MD("_stack_dump_frame_selected"),&ScriptEditorDebugger::_stack_dump_frame_selected); + ClassDB::bind_method(_MD("debug_next"),&ScriptEditorDebugger::debug_next); + ClassDB::bind_method(_MD("debug_step"),&ScriptEditorDebugger::debug_step); + ClassDB::bind_method(_MD("debug_break"),&ScriptEditorDebugger::debug_break); + ClassDB::bind_method(_MD("debug_continue"),&ScriptEditorDebugger::debug_continue); + ClassDB::bind_method(_MD("_output_clear"),&ScriptEditorDebugger::_output_clear); + ClassDB::bind_method(_MD("_performance_draw"),&ScriptEditorDebugger::_performance_draw); + ClassDB::bind_method(_MD("_performance_select"),&ScriptEditorDebugger::_performance_select); + ClassDB::bind_method(_MD("_scene_tree_request"),&ScriptEditorDebugger::_scene_tree_request); + ClassDB::bind_method(_MD("_video_mem_request"),&ScriptEditorDebugger::_video_mem_request); + ClassDB::bind_method(_MD("_live_edit_set"),&ScriptEditorDebugger::_live_edit_set); + ClassDB::bind_method(_MD("_live_edit_clear"),&ScriptEditorDebugger::_live_edit_clear); + + ClassDB::bind_method(_MD("_error_selected"),&ScriptEditorDebugger::_error_selected); + ClassDB::bind_method(_MD("_error_stack_selected"),&ScriptEditorDebugger::_error_stack_selected); + ClassDB::bind_method(_MD("_profiler_activate"),&ScriptEditorDebugger::_profiler_activate); + ClassDB::bind_method(_MD("_profiler_seeked"),&ScriptEditorDebugger::_profiler_seeked); + + ClassDB::bind_method(_MD("_paused"),&ScriptEditorDebugger::_paused); + + ClassDB::bind_method(_MD("_scene_tree_selected"),&ScriptEditorDebugger::_scene_tree_selected); + ClassDB::bind_method(_MD("_scene_tree_folded"),&ScriptEditorDebugger::_scene_tree_folded); + + + ClassDB::bind_method(_MD("live_debug_create_node"),&ScriptEditorDebugger::live_debug_create_node); + ClassDB::bind_method(_MD("live_debug_instance_node"),&ScriptEditorDebugger::live_debug_instance_node); + ClassDB::bind_method(_MD("live_debug_remove_node"),&ScriptEditorDebugger::live_debug_remove_node); + ClassDB::bind_method(_MD("live_debug_remove_and_keep_node"),&ScriptEditorDebugger::live_debug_remove_and_keep_node); + ClassDB::bind_method(_MD("live_debug_restore_node"),&ScriptEditorDebugger::live_debug_restore_node); + ClassDB::bind_method(_MD("live_debug_duplicate_node"),&ScriptEditorDebugger::live_debug_duplicate_node); + ClassDB::bind_method(_MD("live_debug_reparent_node"),&ScriptEditorDebugger::live_debug_reparent_node); + ClassDB::bind_method(_MD("_scene_tree_property_select_object"),&ScriptEditorDebugger::_scene_tree_property_select_object); + ClassDB::bind_method(_MD("_scene_tree_property_value_edited"),&ScriptEditorDebugger::_scene_tree_property_value_edited); ADD_SIGNAL(MethodInfo("goto_script_line")); ADD_SIGNAL(MethodInfo("breaked",PropertyInfo(Variant::BOOL,"reallydid"),PropertyInfo(Variant::BOOL,"can_debug"))); @@ -1980,8 +1972,6 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor){ msgdialog = memnew( AcceptDialog ); add_child(msgdialog); - log_forced_visible=false; - p_editor->get_undo_redo()->set_method_notify_callback(_method_changeds,this); p_editor->get_undo_redo()->set_property_notify_callback(_property_changeds,this); live_debug=false; @@ -1997,7 +1987,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor){ ScriptEditorDebugger::~ScriptEditorDebugger() { -// inspector->edit(NULL); + //inspector->edit(NULL); memdelete(variables); ppeer->set_stream_peer(Ref<StreamPeer>()); diff --git a/tools/editor/script_editor_debugger.h b/tools/editor/script_editor_debugger.h index c4a7cea1b7..a02934bbaf 100644 --- a/tools/editor/script_editor_debugger.h +++ b/tools/editor/script_editor_debugger.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -55,7 +55,7 @@ class ScriptEditorDebuggerInspectedObject; class ScriptEditorDebugger : public Control { - OBJ_TYPE( ScriptEditorDebugger, Control ); + GDCLASS( ScriptEditorDebugger, Control ); AcceptDialog *msgdialog; @@ -96,7 +96,6 @@ class ScriptEditorDebugger : public Control { TabContainer *tabs; LineEdit *reason; - bool log_forced_visible; ScriptEditorDebuggerVariables *variables; Button *step; diff --git a/tools/editor/settings_config_dialog.cpp b/tools/editor/settings_config_dialog.cpp index 50989ea5cb..31cbcee5ae 100644 --- a/tools/editor/settings_config_dialog.cpp +++ b/tools/editor/settings_config_dialog.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "settings_config_dialog.h" + #include "editor_settings.h" #include "scene/gui/margin_container.h" #include "globals.h" @@ -55,7 +56,7 @@ void EditorSettingsDialog::_settings_property_edited(const String& p_name) { // Small usability workaround to update the text color settings when the // color theme is changed - if (full_name == "text_editor/color_theme") { + if (full_name == "text_editor/theme/color_theme") { property_editor->get_property_editor()->update_tree(); } } @@ -288,16 +289,16 @@ void EditorSettingsDialog::_press_a_key_confirm() { void EditorSettingsDialog::_bind_methods() { - ObjectTypeDB::bind_method(_MD("_settings_save"),&EditorSettingsDialog::_settings_save); - ObjectTypeDB::bind_method(_MD("_settings_changed"),&EditorSettingsDialog::_settings_changed); - ObjectTypeDB::bind_method(_MD("_settings_property_edited"),&EditorSettingsDialog::_settings_property_edited); - ObjectTypeDB::bind_method(_MD("_clear_search_box"),&EditorSettingsDialog::_clear_search_box); - ObjectTypeDB::bind_method(_MD("_clear_shortcut_search_box"),&EditorSettingsDialog::_clear_shortcut_search_box); - ObjectTypeDB::bind_method(_MD("_shortcut_button_pressed"),&EditorSettingsDialog::_shortcut_button_pressed); - ObjectTypeDB::bind_method(_MD("_filter_shortcuts"),&EditorSettingsDialog::_filter_shortcuts); - ObjectTypeDB::bind_method(_MD("_update_shortcuts"),&EditorSettingsDialog::_update_shortcuts); - ObjectTypeDB::bind_method(_MD("_press_a_key_confirm"),&EditorSettingsDialog::_press_a_key_confirm); - ObjectTypeDB::bind_method(_MD("_wait_for_key"),&EditorSettingsDialog::_wait_for_key); + ClassDB::bind_method(_MD("_settings_save"),&EditorSettingsDialog::_settings_save); + ClassDB::bind_method(_MD("_settings_changed"),&EditorSettingsDialog::_settings_changed); + ClassDB::bind_method(_MD("_settings_property_edited"),&EditorSettingsDialog::_settings_property_edited); + ClassDB::bind_method(_MD("_clear_search_box"),&EditorSettingsDialog::_clear_search_box); + ClassDB::bind_method(_MD("_clear_shortcut_search_box"),&EditorSettingsDialog::_clear_shortcut_search_box); + ClassDB::bind_method(_MD("_shortcut_button_pressed"),&EditorSettingsDialog::_shortcut_button_pressed); + ClassDB::bind_method(_MD("_filter_shortcuts"),&EditorSettingsDialog::_filter_shortcuts); + ClassDB::bind_method(_MD("_update_shortcuts"),&EditorSettingsDialog::_update_shortcuts); + ClassDB::bind_method(_MD("_press_a_key_confirm"),&EditorSettingsDialog::_press_a_key_confirm); + ClassDB::bind_method(_MD("_wait_for_key"),&EditorSettingsDialog::_wait_for_key); } @@ -307,7 +308,7 @@ EditorSettingsDialog::EditorSettingsDialog() { tabs = memnew( TabContainer ); add_child(tabs); - set_child_rect(tabs); + //set_child_rect(tabs); VBoxContainer *vbc = memnew( VBoxContainer ); tabs->add_child(vbc); @@ -380,7 +381,7 @@ EditorSettingsDialog::EditorSettingsDialog() { l->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_BEGIN,30); press_a_key_label=l; press_a_key->add_child(l); - press_a_key->connect("input_event",this,"_wait_for_key"); + press_a_key->connect("gui_input",this,"_wait_for_key"); press_a_key->connect("confirmed",this,"_press_a_key_confirm"); //Button *load = memnew( Button ); diff --git a/tools/editor/settings_config_dialog.h b/tools/editor/settings_config_dialog.h index 3b91c7f019..17a05c27d3 100644 --- a/tools/editor/settings_config_dialog.h +++ b/tools/editor/settings_config_dialog.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -36,7 +36,7 @@ class EditorSettingsDialog : public AcceptDialog { - OBJ_TYPE(EditorSettingsDialog,AcceptDialog); + GDCLASS(EditorSettingsDialog,AcceptDialog); diff --git a/tools/editor/spatial_editor_gizmos.cpp b/tools/editor/spatial_editor_gizmos.cpp index 84803eb6db..c670245282 100644 --- a/tools/editor/spatial_editor_gizmos.cpp +++ b/tools/editor/spatial_editor_gizmos.cpp @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -27,6 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "spatial_editor_gizmos.h" + #include "geometry.h" #include "scene/3d/camera.h" #include "scene/resources/surface_tool.h" @@ -41,6 +42,8 @@ // Keep small children away from this file. // It's so ugly it will eat them alive + + #define HANDLE_HALF_SIZE 0.05 void EditorSpatialGizmo::clear() { @@ -82,7 +85,6 @@ void EditorSpatialGizmo::Instance::create_instance(Spatial *p_base) { if (extra_margin) VS::get_singleton()->instance_set_extra_visibility_margin(instance,1); VS::get_singleton()->instance_geometry_set_cast_shadows_setting(instance,VS::SHADOW_CASTING_SETTING_OFF); - VS::get_singleton()->instance_geometry_set_flag(instance,VS::INSTANCE_FLAG_RECEIVE_SHADOWS,false); VS::get_singleton()->instance_set_layer_mask(instance,1<<SpatialEditorViewport::GIZMO_EDIT_LAYER); //gizmos are 26 } @@ -116,10 +118,10 @@ void EditorSpatialGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mat a[Mesh::ARRAY_VERTEX]=p_lines; - DVector<Color> color; + PoolVector<Color> color; color.resize(p_lines.size()); { - DVector<Color>::Write w = color.write(); + PoolVector<Color>::Write w = color.write(); for(int i=0;i<p_lines.size();i++) { if (is_selected()) w[i]=Color(1,1,1,0.6); @@ -132,7 +134,7 @@ void EditorSpatialGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mat a[Mesh::ARRAY_COLOR]=color; - mesh->add_surface(Mesh::PRIMITIVE_LINES,a); + mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES,a); mesh->surface_set_material(0,p_material); if (p_billboard) { @@ -143,7 +145,7 @@ void EditorSpatialGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mat } if (md) { - mesh->set_custom_aabb(AABB(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0)); + mesh->set_custom_aabb(Rect3(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0)); } } @@ -181,7 +183,7 @@ void EditorSpatialGizmo::add_unscaled_billboard(const Ref<Material>& p_material, a.resize(Mesh::ARRAY_MAX); a[Mesh::ARRAY_VERTEX]=vs; a[Mesh::ARRAY_TEX_UV]=uv; - mesh->add_surface(Mesh::PRIMITIVE_TRIANGLE_FAN,a); + mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLE_FAN,a); mesh->surface_set_material(0,p_material); if (true) { @@ -192,7 +194,7 @@ void EditorSpatialGizmo::add_unscaled_billboard(const Ref<Material>& p_material, } if (md) { - mesh->set_custom_aabb(AABB(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0)); + mesh->set_custom_aabb(Rect3(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0)); } } @@ -244,10 +246,11 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi Array a; a.resize(VS::ARRAY_MAX); a[VS::ARRAY_VERTEX]=p_handles; - DVector<Color> colors; + print_line("handles?: "+itos(p_handles.size())); + PoolVector<Color> colors; { colors.resize(p_handles.size()); - DVector<Color>::Write w=colors.write(); + PoolVector<Color>::Write w=colors.write(); for(int i=0;i<p_handles.size();i++) { Color col(1,1,1,1); @@ -258,7 +261,7 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi } a[VS::ARRAY_COLOR]=colors; - mesh->add_surface(Mesh::PRIMITIVE_POINTS,a); + mesh->add_surface_from_arrays(Mesh::PRIMITIVE_POINTS,a); mesh->surface_set_material(0,SpatialEditorGizmos::singleton->handle2_material); if (p_billboard) { @@ -269,7 +272,7 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi } if (md) { - mesh->set_custom_aabb(AABB(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0)); + mesh->set_custom_aabb(Rect3(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0)); } } @@ -283,7 +286,8 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi Vector<Vector3> normals; int vtx_idx=0; -#define ADD_VTX(m_idx);\ + +#define ADD_VTX(m_idx) \ vertices.push_back( (face_points[m_idx]*HANDLE_HALF_SIZE+p_handles[ih]) );\ normals.push_back( normal_points[m_idx] );\ vtx_idx++;\ @@ -614,14 +618,14 @@ void EditorSpatialGizmo::free(){ void EditorSpatialGizmo::_bind_methods() { - ObjectTypeDB::bind_method(_MD("add_lines","lines","material:Material","billboard"),&EditorSpatialGizmo::add_lines,DEFVAL(false)); - ObjectTypeDB::bind_method(_MD("add_mesh","mesh:Mesh","billboard","skeleton"),&EditorSpatialGizmo::add_mesh,DEFVAL(false),DEFVAL(RID())); - ObjectTypeDB::bind_method(_MD("add_collision_segments","segments"),&EditorSpatialGizmo::add_collision_segments); - ObjectTypeDB::bind_method(_MD("add_collision_triangles","triangles:TriangleMesh"),&EditorSpatialGizmo::add_collision_triangles); - ObjectTypeDB::bind_method(_MD("add_unscaled_billboard","material:Material","default_scale"),&EditorSpatialGizmo::add_unscaled_billboard,DEFVAL(1)); - ObjectTypeDB::bind_method(_MD("add_handles","handles","billboard","secondary"),&EditorSpatialGizmo::add_handles,DEFVAL(false),DEFVAL(false)); - ObjectTypeDB::bind_method(_MD("set_spatial_node","node:Spatial"),&EditorSpatialGizmo::_set_spatial_node); - ObjectTypeDB::bind_method(_MD("clear"),&EditorSpatialGizmo::clear); + ClassDB::bind_method(_MD("add_lines","lines","material:Material","billboard"),&EditorSpatialGizmo::add_lines,DEFVAL(false)); + ClassDB::bind_method(_MD("add_mesh","mesh:Mesh","billboard","skeleton"),&EditorSpatialGizmo::add_mesh,DEFVAL(false),DEFVAL(RID())); + ClassDB::bind_method(_MD("add_collision_segments","segments"),&EditorSpatialGizmo::add_collision_segments); + ClassDB::bind_method(_MD("add_collision_triangles","triangles:TriangleMesh"),&EditorSpatialGizmo::add_collision_triangles); + ClassDB::bind_method(_MD("add_unscaled_billboard","material:Material","default_scale"),&EditorSpatialGizmo::add_unscaled_billboard,DEFVAL(1)); + ClassDB::bind_method(_MD("add_handles","handles","billboard","secondary"),&EditorSpatialGizmo::add_handles,DEFVAL(false),DEFVAL(false)); + ClassDB::bind_method(_MD("set_spatial_node","node:Spatial"),&EditorSpatialGizmo::_set_spatial_node); + ClassDB::bind_method(_MD("clear"),&EditorSpatialGizmo::clear); BIND_VMETHOD( MethodInfo("redraw")); BIND_VMETHOD( MethodInfo(Variant::STRING,"get_handle_name",PropertyInfo(Variant::INT,"index"))); @@ -667,9 +671,9 @@ String LightSpatialGizmo::get_handle_name(int p_idx) const { Variant LightSpatialGizmo::get_handle_value(int p_idx) const{ if (p_idx==0) - return light->get_parameter(Light::PARAM_RADIUS); + return light->get_param(Light::PARAM_RANGE); if (p_idx==1) - return light->get_parameter(Light::PARAM_SPOT_ANGLE); + return light->get_param(Light::PARAM_SPOT_ANGLE); return Variant(); } @@ -727,7 +731,7 @@ void LightSpatialGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_p if (d<0) d=0; - light->set_parameter(Light::PARAM_RADIUS,d); + light->set_param(Light::PARAM_RANGE,d); } else if (light->cast_to<OmniLight>()) { Plane cp=Plane( gt.origin, p_camera->get_transform().basis.get_axis(2)); @@ -736,15 +740,15 @@ void LightSpatialGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_p if (cp.intersects_ray(ray_from,ray_dir,&inters)) { float r = inters.distance_to(gt.origin); - light->set_parameter(Light::PARAM_RADIUS,r); + light->set_param(Light::PARAM_RANGE,r); } } } else if (p_idx==1) { - float a = _find_closest_angle_to_half_pi_arc(s[0],s[1],light->get_parameter(Light::PARAM_RADIUS),gt); - light->set_parameter(Light::PARAM_SPOT_ANGLE,CLAMP(a,0.01,89.99)); + float a = _find_closest_angle_to_half_pi_arc(s[0],s[1],light->get_param(Light::PARAM_RANGE),gt); + light->set_param(Light::PARAM_SPOT_ANGLE,CLAMP(a,0.01,89.99)); } } @@ -752,21 +756,21 @@ void LightSpatialGizmo::commit_handle(int p_idx,const Variant& p_restore,bool p_ if (p_cancel) { - light->set_parameter(p_idx==0?Light::PARAM_RADIUS:Light::PARAM_SPOT_ANGLE,p_restore); + light->set_param(p_idx==0?Light::PARAM_RANGE:Light::PARAM_SPOT_ANGLE,p_restore); } else if (p_idx==0) { UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo(); ur->create_action(TTR("Change Light Radius")); - ur->add_do_method(light,"set_parameter",Light::PARAM_RADIUS,light->get_parameter(Light::PARAM_RADIUS)); - ur->add_undo_method(light,"set_parameter",Light::PARAM_RADIUS,p_restore); + ur->add_do_method(light,"set_param",Light::PARAM_RANGE,light->get_param(Light::PARAM_RANGE)); + ur->add_undo_method(light,"set_param",Light::PARAM_RANGE,p_restore); ur->commit_action(); } else if (p_idx==1) { UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo(); ur->create_action(TTR("Change Light Radius")); - ur->add_do_method(light,"set_parameter",Light::PARAM_SPOT_ANGLE,light->get_parameter(Light::PARAM_SPOT_ANGLE)); - ur->add_undo_method(light,"set_parameter",Light::PARAM_SPOT_ANGLE,p_restore); + ur->add_do_method(light,"set_param",Light::PARAM_SPOT_ANGLE,light->get_param(Light::PARAM_SPOT_ANGLE)); + ur->add_undo_method(light,"set_param",Light::PARAM_SPOT_ANGLE,p_restore); ur->commit_action(); } @@ -798,8 +802,8 @@ void LightSpatialGizmo::redraw() { for(int i = 0; i < arrow_sides ; i++) { - Matrix3 ma(Vector3(0,0,1),Math_PI*2*float(i)/arrow_sides); - Matrix3 mb(Vector3(0,0,1),Math_PI*2*float(i+1)/arrow_sides); + Basis ma(Vector3(0,0,1),Math_PI*2*float(i)/arrow_sides); + Basis mb(Vector3(0,0,1),Math_PI*2*float(i+1)/arrow_sides); for(int j=1;j<arrow_points-1;j++) { @@ -829,14 +833,14 @@ void LightSpatialGizmo::redraw() { OmniLight *on = light->cast_to<OmniLight>(); - float r = on->get_parameter(Light::PARAM_RADIUS); + float r = on->get_param(Light::PARAM_RANGE); Vector<Vector3> points; for(int i=0;i<=360;i++) { - float ra=Math::deg2rad(i); - float rb=Math::deg2rad(i+1); + float ra=Math::deg2rad((float)i); + float rb=Math::deg2rad((float)i+1); Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*r; Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*r; @@ -869,16 +873,16 @@ void LightSpatialGizmo::redraw() { Vector<Vector3> points; SpotLight *on = light->cast_to<SpotLight>(); - float r = on->get_parameter(Light::PARAM_RADIUS); - float w = r*Math::sin(Math::deg2rad(on->get_parameter(Light::PARAM_SPOT_ANGLE))); - float d = r*Math::cos(Math::deg2rad(on->get_parameter(Light::PARAM_SPOT_ANGLE))); + float r = on->get_param(Light::PARAM_RANGE); + float w = r*Math::sin(Math::deg2rad(on->get_param(Light::PARAM_SPOT_ANGLE))); + float d = r*Math::cos(Math::deg2rad(on->get_param(Light::PARAM_SPOT_ANGLE))); for(int i=0;i<360;i++) { - float ra=Math::deg2rad(i); - float rb=Math::deg2rad(i+1); + float ra=Math::deg2rad((float)i); + float rb=Math::deg2rad((float)i+1); Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*w; Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*w; @@ -951,28 +955,6 @@ LightSpatialGizmo::LightSpatialGizmo(Light* p_light){ set_spatial_node(p_light); } -////// - -void ListenerSpatialGizmo::redraw() { - - clear(); - - add_unscaled_billboard(SpatialEditorGizmos::singleton->listener_icon, 0.05); - - add_mesh(SpatialEditorGizmos::singleton->listener_line_mesh); - Vector<Vector3> cursor_points; - cursor_points.push_back(Vector3(0, 0, 0)); - cursor_points.push_back(Vector3(0, 0, -1.0)); - add_collision_segments(cursor_points); - -} - -ListenerSpatialGizmo::ListenerSpatialGizmo(Listener* p_listener){ - - set_spatial_node(p_listener); - listener = p_listener; -} - ////// @@ -1217,7 +1199,7 @@ void SkeletonSpatialGizmo::redraw() { weights[0]=1; - AABB aabb; + Rect3 aabb; Color bonecolor = Color(1.0,0.4,0.4,0.3); Color rootcolor = Color(0.4,1.0,0.4,0.1); @@ -1389,32 +1371,6 @@ SkeletonSpatialGizmo::SkeletonSpatialGizmo(Skeleton* p_skel) { set_spatial_node(p_skel); } -///// - - -void SpatialPlayerSpatialGizmo::redraw() { - - clear(); - if (splayer->cast_to<SpatialStreamPlayer>()) { - - add_unscaled_billboard(SpatialEditorGizmos::singleton->stream_player_icon,0.05); - - } else if (splayer->cast_to<SpatialSamplePlayer>()) { - - add_unscaled_billboard(SpatialEditorGizmos::singleton->sample_player_icon,0.05); - - } - -} - -SpatialPlayerSpatialGizmo::SpatialPlayerSpatialGizmo(SpatialPlayer* p_splayer){ - - set_spatial_node(p_splayer); - splayer=p_splayer; -} - - -///// void RoomSpatialGizmo::redraw() { @@ -1423,11 +1379,11 @@ void RoomSpatialGizmo::redraw() { Ref<RoomBounds> roomie = room->get_room(); if (roomie.is_null()) return; - DVector<Face3> faces = roomie->get_geometry_hint(); + PoolVector<Face3> faces = roomie->get_geometry_hint(); Vector<Vector3> lines; int fc=faces.size(); - DVector<Face3>::Read r =faces.read(); + PoolVector<Face3>::Read r =faces.read(); Map<_EdgeKey,Vector3> edge_map; @@ -1541,7 +1497,7 @@ void RayCastSpatialGizmo::redraw() { } -RayCastSpatialGizmo::RayCastSpatialGizmo(RayCast* p_raycast){ +RayCastSpatialGizmo::RayCastSpatialGizmo(RayCast* p_raycast) { set_spatial_node(p_raycast); raycast=p_raycast; @@ -1563,8 +1519,8 @@ void VehicleWheelSpatialGizmo::redraw() { const int skip=10; for(int i=0;i<=360;i+=skip) { - float ra=Math::deg2rad(i); - float rb=Math::deg2rad(i+skip); + float ra=Math::deg2rad((float)i); + float rb=Math::deg2rad((float)i+skip); Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*r; Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*r; @@ -1870,8 +1826,8 @@ void CollisionShapeSpatialGizmo::redraw(){ for(int i=0;i<=360;i++) { - float ra=Math::deg2rad(i); - float rb=Math::deg2rad(i+1); + float ra=Math::deg2rad((float)i); + float rb=Math::deg2rad((float)i+1); Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*r; Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*r; @@ -1913,7 +1869,7 @@ void CollisionShapeSpatialGizmo::redraw(){ Ref<BoxShape> bs=s; Vector<Vector3> lines; - AABB aabb; + Rect3 aabb; aabb.pos=-bs->get_extents(); aabb.size=aabb.pos*-2; @@ -1951,8 +1907,8 @@ void CollisionShapeSpatialGizmo::redraw(){ Vector3 d(0,0,height*0.5); for(int i=0;i<360;i++) { - float ra=Math::deg2rad(i); - float rb=Math::deg2rad(i+1); + float ra=Math::deg2rad((float)i); + float rb=Math::deg2rad((float)i+1); Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*radius; Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*radius; @@ -2054,7 +2010,7 @@ void CollisionShapeSpatialGizmo::redraw(){ if (s->cast_to<ConvexPolygonShape>()) { - DVector<Vector3> points = s->cast_to<ConvexPolygonShape>()->get_points(); + PoolVector<Vector3> points = s->cast_to<ConvexPolygonShape>()->get_points(); if (points.size()>3) { @@ -2161,12 +2117,12 @@ void VisibilityNotifierGizmo::set_handle(int p_idx,Camera *p_camera, const Point //gt.orthonormalize(); Transform gi = gt.affine_inverse(); - AABB aabb = notifier->get_aabb(); + Rect3 aabb = notifier->get_aabb(); Vector3 ray_from = p_camera->project_ray_origin(p_point); Vector3 ray_dir = p_camera->project_ray_normal(p_point); Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*4096)}; - Vector3 ofs = aabb.pos+aabb.size*0.5;; + Vector3 ofs = aabb.pos+aabb.size*0.5; Vector3 axis; axis[p_idx]=1.0; @@ -2203,7 +2159,7 @@ void VisibilityNotifierGizmo::redraw(){ clear(); Vector<Vector3> lines; - AABB aabb = notifier->get_aabb(); + Rect3 aabb = notifier->get_aabb(); for(int i=0;i<12;i++) { Vector3 a,b; @@ -2237,6 +2193,321 @@ VisibilityNotifierGizmo::VisibilityNotifierGizmo(VisibilityNotifier* p_notifier) //////// +/// + + +String ReflectionProbeGizmo::get_handle_name(int p_idx) const { + + switch(p_idx) { + case 0: return "Extents X"; + case 1: return "Extents Y"; + case 2: return "Extents Z"; + case 3: return "Origin X"; + case 4: return "Origin Y"; + case 5: return "Origin Z"; + } + + return ""; +} +Variant ReflectionProbeGizmo::get_handle_value(int p_idx) const{ + + return Rect3(probe->get_extents(),probe->get_origin_offset()); +} +void ReflectionProbeGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_point){ + + Transform gt = probe->get_global_transform(); + //gt.orthonormalize(); + Transform gi = gt.affine_inverse(); + + + if (p_idx<3) { + Vector3 extents = probe->get_extents(); + + Vector3 ray_from = p_camera->project_ray_origin(p_point); + Vector3 ray_dir = p_camera->project_ray_normal(p_point); + + Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*16384)}; + + Vector3 axis; + axis[p_idx]=1.0; + + Vector3 ra,rb; + Geometry::get_closest_points_between_segments(Vector3(),axis*16384,sg[0],sg[1],ra,rb); + float d = ra[p_idx]; + if (d<0.001) + d=0.001; + + extents[p_idx]=d; + probe->set_extents(extents); + } else { + + p_idx-=3; + + Vector3 origin = probe->get_origin_offset(); + origin[p_idx]=0; + + Vector3 ray_from = p_camera->project_ray_origin(p_point); + Vector3 ray_dir = p_camera->project_ray_normal(p_point); + + Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*16384)}; + + Vector3 axis; + axis[p_idx]=1.0; + + Vector3 ra,rb; + Geometry::get_closest_points_between_segments(origin-axis*16384,origin+axis*16384,sg[0],sg[1],ra,rb); + float d = ra[p_idx]; + d+=0.25; + + origin[p_idx]=d; + probe->set_origin_offset(origin); + + } +} + +void ReflectionProbeGizmo::commit_handle(int p_idx,const Variant& p_restore,bool p_cancel){ + + Rect3 restore = p_restore; + + if (p_cancel) { + probe->set_extents(restore.pos); + probe->set_origin_offset(restore.size); + return; + } + + UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Change Probe Extents")); + ur->add_do_method(probe,"set_extents",probe->get_extents()); + ur->add_do_method(probe,"set_origin_offset",probe->get_origin_offset()); + ur->add_undo_method(probe,"set_extents",restore.pos); + ur->add_undo_method(probe,"set_origin_offset",restore.size); + ur->commit_action(); + +} + +void ReflectionProbeGizmo::redraw(){ + + clear(); + + Vector<Vector3> lines; + Vector<Vector3> internal_lines; + Vector3 extents = probe->get_extents(); + + Rect3 aabb; + aabb.pos=-extents; + aabb.size=extents*2; + + for(int i=0;i<12;i++) { + Vector3 a,b; + aabb.get_edge(i,a,b); + lines.push_back(a); + lines.push_back(b); + } + + for(int i=0;i<8;i++) { + Vector3 ep = aabb.get_endpoint(i); + internal_lines.push_back(probe->get_origin_offset()); + internal_lines.push_back(ep); + + + } + + Vector<Vector3> handles; + + + for(int i=0;i<3;i++) { + + Vector3 ax; + ax[i]=aabb.pos[i]+aabb.size[i]; + handles.push_back(ax); + } + + for(int i=0;i<3;i++) { + + + Vector3 orig_handle=probe->get_origin_offset(); + orig_handle[i]-=0.25; + lines.push_back(orig_handle); + handles.push_back(orig_handle); + + orig_handle[i]+=0.5; + lines.push_back(orig_handle); + } + + add_lines(lines,SpatialEditorGizmos::singleton->reflection_probe_material); + add_lines(internal_lines,SpatialEditorGizmos::singleton->reflection_probe_material_internal); + //add_unscaled_billboard(SpatialEditorGizmos::singleton->visi,0.05); + add_collision_segments(lines); + add_handles(handles); + +} +ReflectionProbeGizmo::ReflectionProbeGizmo(ReflectionProbe* p_probe){ + + probe=p_probe; + set_spatial_node(p_probe); +} + +//////// + + + +/// + + +String GIProbeGizmo::get_handle_name(int p_idx) const { + + switch(p_idx) { + case 0: return "Extents X"; + case 1: return "Extents Y"; + case 2: return "Extents Z"; + } + + return ""; +} +Variant GIProbeGizmo::get_handle_value(int p_idx) const{ + + return probe->get_extents(); +} +void GIProbeGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_point){ + + Transform gt = probe->get_global_transform(); + //gt.orthonormalize(); + Transform gi = gt.affine_inverse(); + + + Vector3 extents = probe->get_extents(); + + Vector3 ray_from = p_camera->project_ray_origin(p_point); + Vector3 ray_dir = p_camera->project_ray_normal(p_point); + + Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*16384)}; + + Vector3 axis; + axis[p_idx]=1.0; + + Vector3 ra,rb; + Geometry::get_closest_points_between_segments(Vector3(),axis*16384,sg[0],sg[1],ra,rb); + float d = ra[p_idx]; + if (d<0.001) + d=0.001; + + extents[p_idx]=d; + probe->set_extents(extents); + +} + +void GIProbeGizmo::commit_handle(int p_idx,const Variant& p_restore,bool p_cancel){ + + Vector3 restore = p_restore; + + if (p_cancel) { + probe->set_extents(restore); + return; + } + + UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Change Probe Extents")); + ur->add_do_method(probe,"set_extents",probe->get_extents()); + ur->add_undo_method(probe,"set_extents",restore); + ur->commit_action(); + +} + +void GIProbeGizmo::redraw(){ + + clear(); + + Vector<Vector3> lines; + Vector3 extents = probe->get_extents(); + + static const int subdivs[GIProbe::SUBDIV_MAX]={64,128,256,512}; + + Rect3 aabb = Rect3(-extents,extents*2); + int subdiv = subdivs[probe->get_subdiv()]; + float cell_size = aabb.get_longest_axis_size()/subdiv; + + + for(int i=0;i<12;i++) { + Vector3 a,b; + aabb.get_edge(i,a,b); + lines.push_back(a); + lines.push_back(b); + } + + add_lines(lines,SpatialEditorGizmos::singleton->gi_probe_material); + add_collision_segments(lines); + + lines.clear(); + + for(int i=1;i<subdiv;i++) { + + for(int j=0;j<3;j++) { + + + + if (cell_size*i>aabb.size[j]) { + continue; + } + + Vector2 dir; + dir[j]=1.0; + Vector2 ta,tb; + int j_n1=(j+1)%3; + int j_n2=(j+2)%3; + ta[j_n1]=1.0; + tb[j_n2]=1.0; + + + for(int k=0;k<4;k++) { + + Vector3 from=aabb.pos,to=aabb.pos; + from[j]+= cell_size*i; + to[j]+=cell_size*i; + + if (k&1) { + to[j_n1]+=aabb.size[j_n1]; + } else { + + to[j_n2]+=aabb.size[j_n2]; + } + + if (k&2) { + from[j_n1]+=aabb.size[j_n1]; + from[j_n2]+=aabb.size[j_n2]; + } + + lines.push_back(from); + lines.push_back(to); + } + + } + + } + + add_lines(lines,SpatialEditorGizmos::singleton->reflection_probe_material_internal); + + Vector<Vector3> handles; + + + for(int i=0;i<3;i++) { + + Vector3 ax; + ax[i]=aabb.pos[i]+aabb.size[i]; + handles.push_back(ax); + } + + + add_handles(handles); + +} +GIProbeGizmo::GIProbeGizmo(GIProbe* p_probe){ + + probe=p_probe; + set_spatial_node(p_probe); +} + +//////// + void NavigationMeshSpatialGizmo::redraw() { @@ -2245,8 +2516,8 @@ void NavigationMeshSpatialGizmo::redraw() { if (navmeshie.is_null()) return; - DVector<Vector3> vertices = navmeshie->get_vertices(); - DVector<Vector3>::Read vr=vertices.read(); + PoolVector<Vector3> vertices = navmeshie->get_vertices(); + PoolVector<Vector3>::Read vr=vertices.read(); List<Face3> faces; for(int i=0;i<navmeshie->get_polygon_count();i++) { Vector<int> p = navmeshie->get_polygon(i); @@ -2265,11 +2536,11 @@ void NavigationMeshSpatialGizmo::redraw() { return; Map<_EdgeKey,bool> edge_map; - DVector<Vector3> tmeshfaces; + PoolVector<Vector3> tmeshfaces; tmeshfaces.resize(faces.size()*3); { - DVector<Vector3>::Write tw=tmeshfaces.write(); + PoolVector<Vector3>::Write tw=tmeshfaces.write(); int tidx=0; @@ -2320,7 +2591,7 @@ void NavigationMeshSpatialGizmo::redraw() { Array a; a.resize(Mesh::ARRAY_MAX); a[0]=tmeshfaces; - m->add_surface(Mesh::PRIMITIVE_TRIANGLES,a); + m->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES,a); m->surface_set_material(0,navmesh->is_enabled()?SpatialEditorGizmos::singleton->navmesh_solid_material:SpatialEditorGizmos::singleton->navmesh_solid_material_disabled); add_mesh(m); add_collision_segments(lines); @@ -2573,8 +2844,8 @@ void ConeTwistJointSpatialGizmo::redraw() { //swing for(int i=0;i<360;i+=10) { - float ra=Math::deg2rad(i); - float rb=Math::deg2rad(i+10); + float ra=Math::deg2rad((float)i); + float rb=Math::deg2rad((float)i+10); Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*w; Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*w; @@ -2605,8 +2876,8 @@ void ConeTwistJointSpatialGizmo::redraw() { for(int i=0;i<int(ts);i+=5) { - float ra=Math::deg2rad(i); - float rb=Math::deg2rad(i+5); + float ra=Math::deg2rad((float)i); + float rb=Math::deg2rad((float)i+5); float c = i/720.0; float cn = (i+5)/720.0; Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*w*c; @@ -2800,8 +3071,8 @@ void Generic6DOFJointSpatialGizmo::redraw() { float s = ll+i*(Math_PI*2.0)/points; float n = ll+(i+1)*(Math_PI*2.0)/points; -// Vector3 from=Vector3(0,Math::cos(s),-Math::sin(s) )*cs; -// Vector3 to=Vector3( 0,Math::cos(n),-Math::sin(n) )*cs; + //Vector3 from=Vector3(0,Math::cos(s),-Math::sin(s) )*cs; + //Vector3 to=Vector3( 0,Math::cos(n),-Math::sin(n) )*cs; Vector3 from; SET_VTX(from,0, Math::cos(s), -Math::sin(s) ); @@ -2848,11 +3119,7 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) { return lsg; } - if (p_spatial->cast_to<Listener>()) { - Ref<ListenerSpatialGizmo> misg = memnew(ListenerSpatialGizmo(p_spatial->cast_to<Listener>())); - return misg; - } if (p_spatial->cast_to<Camera>()) { @@ -2910,12 +3177,6 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) { return misg; } - if (p_spatial->cast_to<SpatialPlayer>()) { - - Ref<SpatialPlayerSpatialGizmo> misg = memnew( SpatialPlayerSpatialGizmo(p_spatial->cast_to<SpatialPlayer>()) ); - return misg; - } - if (p_spatial->cast_to<CollisionShape>()) { Ref<CollisionShapeSpatialGizmo> misg = memnew( CollisionShapeSpatialGizmo(p_spatial->cast_to<CollisionShape>()) ); @@ -2928,6 +3189,17 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) { return misg; } + if (p_spatial->cast_to<ReflectionProbe>()) { + + Ref<ReflectionProbeGizmo> misg = memnew( ReflectionProbeGizmo(p_spatial->cast_to<ReflectionProbe>()) ); + return misg; + } + if (p_spatial->cast_to<GIProbe>()) { + + Ref<GIProbeGizmo> misg = memnew( GIProbeGizmo(p_spatial->cast_to<GIProbe>()) ); + return misg; + } + if (p_spatial->cast_to<VehicleWheel>()) { Ref<VehicleWheelSpatialGizmo> misg = memnew( VehicleWheelSpatialGizmo(p_spatial->cast_to<VehicleWheel>()) ); @@ -2974,25 +3246,26 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) { } -Ref<FixedMaterial> SpatialEditorGizmos::create_line_material(const Color& p_base_color) { +Ref<FixedSpatialMaterial> SpatialEditorGizmos::create_line_material(const Color& p_base_color) { - Ref<FixedMaterial> line_material = Ref<FixedMaterial>( memnew( FixedMaterial )); - line_material->set_flag(Material::FLAG_UNSHADED, true); + Ref<FixedSpatialMaterial> line_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + line_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); line_material->set_line_width(3.0); - line_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - line_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true); - line_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,p_base_color); + line_material->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + //line_material->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + //->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); + line_material->set_albedo(p_base_color); return line_material; } -Ref<FixedMaterial> SpatialEditorGizmos::create_solid_material(const Color& p_base_color) { +Ref<FixedSpatialMaterial> SpatialEditorGizmos::create_solid_material(const Color& p_base_color) { - Ref<FixedMaterial> line_material = Ref<FixedMaterial>( memnew( FixedMaterial )); - line_material->set_flag(Material::FLAG_UNSHADED, true); - line_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - line_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,p_base_color); + Ref<FixedSpatialMaterial> line_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + line_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + line_material->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + line_material->set_albedo(p_base_color); return line_material; @@ -3002,65 +3275,68 @@ SpatialEditorGizmos::SpatialEditorGizmos() { singleton=this; - handle_material = Ref<FixedMaterial>( memnew( FixedMaterial )); - handle_material->set_flag(Material::FLAG_UNSHADED, true); - handle_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(0.8,0.8,0.8)); + handle_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + handle_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + handle_material->set_albedo(Color(0.8,0.8,0.8)); - handle2_material = Ref<FixedMaterial>( memnew( FixedMaterial )); - handle2_material->set_flag(Material::FLAG_UNSHADED, true); - handle2_material->set_fixed_flag(FixedMaterial::FLAG_USE_POINT_SIZE, true); + handle2_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + handle2_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + handle2_material->set_flag(FixedSpatialMaterial::FLAG_USE_POINT_SIZE, true); handle_t = SpatialEditor::get_singleton()->get_icon("Editor3DHandle","EditorIcons"); handle2_material->set_point_size(handle_t->get_width()); - handle2_material->set_texture(FixedMaterial::PARAM_DIFFUSE,handle_t); - handle2_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1)); - handle2_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - handle2_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true); + handle2_material->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,handle_t); + handle2_material->set_albedo(Color(1,1,1)); + handle2_material->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + handle2_material->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + handle2_material->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); light_material = create_line_material(Color(1,1,0.2)); - light_material_omni_icon = Ref<FixedMaterial>( memnew( FixedMaterial )); - light_material_omni_icon->set_flag(Material::FLAG_UNSHADED, true); - light_material_omni_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true); - light_material_omni_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - light_material_omni_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - light_material_omni_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9)); - light_material_omni_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoLight","EditorIcons")); + light_material_omni_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + light_material_omni_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + light_material_omni_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + light_material_omni_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED); + light_material_omni_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + light_material_omni_icon->set_albedo(Color(1,1,1,0.9)); + light_material_omni_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoLight","EditorIcons")); - light_material_directional_icon = Ref<FixedMaterial>( memnew( FixedMaterial )); - light_material_directional_icon->set_flag(Material::FLAG_UNSHADED, true); - light_material_directional_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true); - light_material_directional_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - light_material_directional_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - light_material_directional_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9)); - light_material_directional_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoDirectionalLight","EditorIcons")); + light_material_directional_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + light_material_directional_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + light_material_directional_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + light_material_directional_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED); + light_material_directional_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + light_material_directional_icon->set_albedo(Color(1,1,1,0.9)); + light_material_directional_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoDirectionalLight","EditorIcons")); camera_material = create_line_material(Color(1.0,0.5,1.0)); navmesh_edge_material = create_line_material(Color(0.1,0.8,1.0)); navmesh_solid_material = create_solid_material(Color(0.1,0.8,1.0,0.4)); - navmesh_edge_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, false); - navmesh_solid_material->set_flag(Material::FLAG_DOUBLE_SIDED,true); + navmesh_edge_material->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, false); + navmesh_edge_material->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, false); + navmesh_solid_material->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); navmesh_edge_material_disabled = create_line_material(Color(1.0,0.8,0.1)); navmesh_solid_material_disabled = create_solid_material(Color(1.0,0.8,0.1,0.4)); - navmesh_edge_material_disabled->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, false); - navmesh_solid_material_disabled->set_flag(Material::FLAG_DOUBLE_SIDED,true); + navmesh_edge_material_disabled->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, false); + navmesh_edge_material_disabled->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, false); + navmesh_solid_material_disabled->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); skeleton_material = create_line_material(Color(0.6,1.0,0.3)); - skeleton_material->set_flag(Material::FLAG_DOUBLE_SIDED,true); - skeleton_material->set_flag(Material::FLAG_UNSHADED,true); - skeleton_material->set_flag(Material::FLAG_ONTOP,true); - skeleton_material->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); + skeleton_material->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + skeleton_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true); + skeleton_material->set_flag(FixedSpatialMaterial::FLAG_ONTOP,true); + skeleton_material->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED); //position 3D Shared mesh pos3d_mesh = Ref<Mesh>( memnew( Mesh ) ); { - DVector<Vector3> cursor_points; - DVector<Color> cursor_colors; + PoolVector<Vector3> cursor_points; + PoolVector<Color> cursor_colors; float cs = 0.25; cursor_points.push_back(Vector3(+cs,0,0)); cursor_points.push_back(Vector3(-cs,0,0)); @@ -3075,88 +3351,94 @@ SpatialEditorGizmos::SpatialEditorGizmos() { cursor_colors.push_back(Color(0.5,0.5,1,0.7)); cursor_colors.push_back(Color(0.5,0.5,1,0.7)); - Ref<FixedMaterial> mat = memnew( FixedMaterial ); - mat->set_flag(Material::FLAG_UNSHADED,true); - mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true); - mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true); + Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial ); + mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true); + mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR,true); + mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR,true); + mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT,true); mat->set_line_width(3); Array d; d.resize(VS::ARRAY_MAX); d[Mesh::ARRAY_VERTEX]=cursor_points; d[Mesh::ARRAY_COLOR]=cursor_colors; - pos3d_mesh->add_surface(Mesh::PRIMITIVE_LINES,d); + pos3d_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES,d); pos3d_mesh->surface_set_material(0,mat); } listener_line_mesh = Ref<Mesh>(memnew(Mesh)); { - DVector<Vector3> cursor_points; - DVector<Color> cursor_colors; + PoolVector<Vector3> cursor_points; + PoolVector<Color> cursor_colors; cursor_points.push_back(Vector3(0, 0, 0)); cursor_points.push_back(Vector3(0, 0, -1.0)); cursor_colors.push_back(Color(0.5, 0.5, 0.5, 0.7)); cursor_colors.push_back(Color(0.5, 0.5, 0.5, 0.7)); - Ref<FixedMaterial> mat = memnew(FixedMaterial); - mat->set_flag(Material::FLAG_UNSHADED, true); - mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true); - mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); + Ref<FixedSpatialMaterial> mat = memnew(FixedSpatialMaterial); + mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); + mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); mat->set_line_width(3); Array d; d.resize(VS::ARRAY_MAX); d[Mesh::ARRAY_VERTEX] = cursor_points; d[Mesh::ARRAY_COLOR] = cursor_colors; - listener_line_mesh->add_surface(Mesh::PRIMITIVE_LINES, d); + listener_line_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES, d); listener_line_mesh->surface_set_material(0, mat); } - sample_player_icon = Ref<FixedMaterial>( memnew( FixedMaterial )); - sample_player_icon->set_flag(Material::FLAG_UNSHADED, true); - sample_player_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true); - sample_player_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - sample_player_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - sample_player_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9)); - sample_player_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoSpatialSamplePlayer","EditorIcons")); + sample_player_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + sample_player_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + sample_player_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + sample_player_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED); + sample_player_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + sample_player_icon->set_albedo(Color(1,1,1,0.9)); + sample_player_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoSpatialSamplePlayer","EditorIcons")); room_material = create_line_material(Color(1.0,0.6,0.9)); portal_material = create_line_material(Color(1.0,0.8,0.6)); raycast_material = create_line_material(Color(1.0,0.8,0.6)); car_wheel_material = create_line_material(Color(0.6,0.8,1.0)); visibility_notifier_material = create_line_material(Color(1.0,0.5,1.0)); + reflection_probe_material = create_line_material(Color(0.5,1.0,0.7)); + reflection_probe_material_internal = create_line_material(Color(0.3,0.8,0.5,0.15)); + gi_probe_material = create_line_material(Color(0.7,1.0,0.5)); + gi_probe_material_internal = create_line_material(Color(0.5,0.8,0.3,0.4)); joint_material = create_line_material(Color(0.6,0.8,1.0)); - stream_player_icon = Ref<FixedMaterial>( memnew( FixedMaterial )); - stream_player_icon->set_flag(Material::FLAG_UNSHADED, true); - stream_player_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true); - stream_player_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - stream_player_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - stream_player_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9)); - stream_player_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoSpatialStreamPlayer","EditorIcons")); - - visibility_notifier_icon = Ref<FixedMaterial>( memnew( FixedMaterial )); - visibility_notifier_icon->set_flag(Material::FLAG_UNSHADED, true); - visibility_notifier_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true); - visibility_notifier_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - visibility_notifier_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - visibility_notifier_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9)); - visibility_notifier_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("Visible","EditorIcons")); - - listener_icon = Ref<FixedMaterial>(memnew(FixedMaterial)); - listener_icon->set_flag(Material::FLAG_UNSHADED, true); - listener_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true); - listener_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER); - listener_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true); - listener_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE, Color(1, 1, 1, 0.9)); - listener_icon->set_texture(FixedMaterial::PARAM_DIFFUSE, SpatialEditor::get_singleton()->get_icon("GizmoListener", "EditorIcons")); + stream_player_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + stream_player_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + stream_player_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + stream_player_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED); + stream_player_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + stream_player_icon->set_albedo(Color(1,1,1,0.9)); + stream_player_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoSpatialStreamPlayer","EditorIcons")); + + visibility_notifier_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial )); + visibility_notifier_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + visibility_notifier_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + visibility_notifier_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED); + visibility_notifier_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + visibility_notifier_icon->set_albedo(Color(1,1,1,0.9)); + visibility_notifier_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("Visible","EditorIcons")); + + listener_icon = Ref<FixedSpatialMaterial>(memnew(FixedSpatialMaterial)); + listener_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true); + listener_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED); + listener_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED); + listener_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true); + listener_icon->set_albedo( Color(1, 1, 1, 0.9)); + listener_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO, SpatialEditor::get_singleton()->get_icon("GizmoListener", "EditorIcons")); { - DVector<Vector3> vertices; + PoolVector<Vector3> vertices; #undef ADD_VTX -#define ADD_VTX(m_idx);\ +#define ADD_VTX(m_idx) \ vertices.push_back( face_points[m_idx] ); for (int i=0;i<6;i++) { @@ -3198,3 +3480,4 @@ SpatialEditorGizmos::SpatialEditorGizmos() { } + diff --git a/tools/editor/spatial_editor_gizmos.h b/tools/editor/spatial_editor_gizmos.h index 3d7272f522..8a63d4f81e 100644 --- a/tools/editor/spatial_editor_gizmos.h +++ b/tools/editor/spatial_editor_gizmos.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -35,8 +35,6 @@ #include "scene/3d/listener.h" #include "scene/3d/camera.h" #include "scene/3d/position_3d.h" -#include "scene/3d/spatial_sample_player.h" -#include "scene/3d/spatial_stream_player.h" #include "scene/3d/test_cube.h" #include "scene/3d/mesh_instance.h" #include "scene/3d/body_shape.h" @@ -45,6 +43,8 @@ #include "scene/3d/portal.h" #include "scene/3d/ray_cast.h" #include "scene/3d/navigation_mesh.h" +#include "scene/3d/reflection_probe.h" +#include "scene/3d/gi_probe.h" #include "scene/3d/vehicle_body.h" #include "scene/3d/collision_polygon.h" @@ -55,7 +55,7 @@ class Camera; class EditorSpatialGizmo : public SpatialEditorGizmo { - OBJ_TYPE(EditorSpatialGizmo,SpatialGizmo); + GDCLASS(EditorSpatialGizmo,SpatialGizmo); struct Instance{ @@ -127,7 +127,7 @@ public: class LightSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(LightSpatialGizmo,EditorSpatialGizmo); + GDCLASS(LightSpatialGizmo,EditorSpatialGizmo); Light* light; @@ -144,22 +144,9 @@ public: }; -class ListenerSpatialGizmo : public EditorSpatialGizmo { - - OBJ_TYPE(ListenerSpatialGizmo, EditorSpatialGizmo); - - Listener* listener; - -public: - - void redraw(); - ListenerSpatialGizmo(Listener* p_listener = NULL); - -}; - class CameraSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(CameraSpatialGizmo,EditorSpatialGizmo); + GDCLASS(CameraSpatialGizmo,EditorSpatialGizmo); Camera* camera; @@ -180,7 +167,7 @@ public: class MeshInstanceSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(MeshInstanceSpatialGizmo,EditorSpatialGizmo); + GDCLASS(MeshInstanceSpatialGizmo,EditorSpatialGizmo); MeshInstance* mesh; @@ -193,7 +180,7 @@ public: class Position3DSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(Position3DSpatialGizmo,EditorSpatialGizmo); + GDCLASS(Position3DSpatialGizmo,EditorSpatialGizmo); Position3D* p3d; @@ -206,7 +193,7 @@ public: class SkeletonSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(SkeletonSpatialGizmo,EditorSpatialGizmo); + GDCLASS(SkeletonSpatialGizmo,EditorSpatialGizmo); Skeleton* skel; @@ -218,26 +205,9 @@ public: }; - - -class SpatialPlayerSpatialGizmo : public EditorSpatialGizmo { - - OBJ_TYPE(SpatialPlayerSpatialGizmo,EditorSpatialGizmo); - - SpatialPlayer* splayer; - -public: - - void redraw(); - SpatialPlayerSpatialGizmo(SpatialPlayer* p_splayer=NULL); - -}; - - - class TestCubeSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(TestCubeSpatialGizmo,EditorSpatialGizmo); + GDCLASS(TestCubeSpatialGizmo,EditorSpatialGizmo); TestCube* tc; @@ -250,7 +220,7 @@ public: class RoomSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(RoomSpatialGizmo,EditorSpatialGizmo); + GDCLASS(RoomSpatialGizmo,EditorSpatialGizmo); struct _EdgeKey { @@ -275,7 +245,7 @@ public: class PortalSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(PortalSpatialGizmo,EditorSpatialGizmo); + GDCLASS(PortalSpatialGizmo,EditorSpatialGizmo); Portal* portal; @@ -289,7 +259,7 @@ public: class VisibilityNotifierGizmo : public EditorSpatialGizmo { - OBJ_TYPE(VisibilityNotifierGizmo ,EditorSpatialGizmo); + GDCLASS(VisibilityNotifierGizmo ,EditorSpatialGizmo); VisibilityNotifier* notifier; @@ -307,10 +277,48 @@ public: }; +class ReflectionProbeGizmo : public EditorSpatialGizmo { + + GDCLASS(ReflectionProbeGizmo ,EditorSpatialGizmo); + + + ReflectionProbe* probe; + +public: + + virtual String get_handle_name(int p_idx) const; + virtual Variant get_handle_value(int p_idx) const; + virtual void set_handle(int p_idx,Camera *p_camera, const Point2& p_point); + virtual void commit_handle(int p_idx,const Variant& p_restore,bool p_cancel=false); + + void redraw(); + ReflectionProbeGizmo(ReflectionProbe* p_notifier=NULL); + +}; + +class GIProbeGizmo : public EditorSpatialGizmo { + + GDCLASS(GIProbeGizmo ,EditorSpatialGizmo); + + + GIProbe* probe; + +public: + + virtual String get_handle_name(int p_idx) const; + virtual Variant get_handle_value(int p_idx) const; + virtual void set_handle(int p_idx,Camera *p_camera, const Point2& p_point); + virtual void commit_handle(int p_idx,const Variant& p_restore,bool p_cancel=false); + + void redraw(); + GIProbeGizmo(GIProbe* p_notifier=NULL); + +}; + class CollisionShapeSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(CollisionShapeSpatialGizmo,EditorSpatialGizmo); + GDCLASS(CollisionShapeSpatialGizmo,EditorSpatialGizmo); CollisionShape* cs; @@ -327,7 +335,7 @@ public: class CollisionPolygonSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(CollisionPolygonSpatialGizmo,EditorSpatialGizmo); + GDCLASS(CollisionPolygonSpatialGizmo,EditorSpatialGizmo); CollisionPolygon* polygon; @@ -339,9 +347,10 @@ public: }; + class RayCastSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(RayCastSpatialGizmo,EditorSpatialGizmo); + GDCLASS(RayCastSpatialGizmo,EditorSpatialGizmo); RayCast* raycast; @@ -356,7 +365,7 @@ public: class VehicleWheelSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(VehicleWheelSpatialGizmo,EditorSpatialGizmo); + GDCLASS(VehicleWheelSpatialGizmo,EditorSpatialGizmo); VehicleWheel* car_wheel; @@ -370,7 +379,7 @@ public: class NavigationMeshSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(NavigationMeshSpatialGizmo,EditorSpatialGizmo); + GDCLASS(NavigationMeshSpatialGizmo,EditorSpatialGizmo); struct _EdgeKey { @@ -395,7 +404,7 @@ public: class PinJointSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(PinJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(PinJointSpatialGizmo,EditorSpatialGizmo); PinJoint* p3d; @@ -409,7 +418,7 @@ public: class HingeJointSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(HingeJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(HingeJointSpatialGizmo,EditorSpatialGizmo); HingeJoint* p3d; @@ -422,7 +431,7 @@ public: class SliderJointSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(SliderJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(SliderJointSpatialGizmo,EditorSpatialGizmo); SliderJoint* p3d; @@ -435,7 +444,7 @@ public: class ConeTwistJointSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(ConeTwistJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(ConeTwistJointSpatialGizmo,EditorSpatialGizmo); ConeTwistJoint* p3d; @@ -449,7 +458,7 @@ public: class Generic6DOFJointSpatialGizmo : public EditorSpatialGizmo { - OBJ_TYPE(Generic6DOFJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(Generic6DOFJointSpatialGizmo,EditorSpatialGizmo); Generic6DOFJoint* p3d; @@ -464,34 +473,38 @@ public: class SpatialEditorGizmos { public: - Ref<FixedMaterial> create_line_material(const Color& p_base_color); - Ref<FixedMaterial> create_solid_material(const Color& p_base_color); - Ref<FixedMaterial> handle2_material; - Ref<FixedMaterial> handle_material; - Ref<FixedMaterial> light_material; - Ref<FixedMaterial> light_material_omni_icon; - Ref<FixedMaterial> light_material_directional_icon; - Ref<FixedMaterial> camera_material; - Ref<FixedMaterial> skeleton_material; - Ref<FixedMaterial> room_material; - Ref<FixedMaterial> portal_material; - Ref<FixedMaterial> raycast_material; - Ref<FixedMaterial> visibility_notifier_material; - Ref<FixedMaterial> car_wheel_material; - Ref<FixedMaterial> joint_material; - - Ref<FixedMaterial> navmesh_edge_material; - Ref<FixedMaterial> navmesh_solid_material; - Ref<FixedMaterial> navmesh_edge_material_disabled; - Ref<FixedMaterial> navmesh_solid_material_disabled; - - Ref<FixedMaterial> listener_icon; - - Ref<FixedMaterial> sample_player_icon; - Ref<FixedMaterial> stream_player_icon; - Ref<FixedMaterial> visibility_notifier_icon; - - Ref<FixedMaterial> shape_material; + Ref<FixedSpatialMaterial> create_line_material(const Color& p_base_color); + Ref<FixedSpatialMaterial> create_solid_material(const Color& p_base_color); + Ref<FixedSpatialMaterial> handle2_material; + Ref<FixedSpatialMaterial> handle_material; + Ref<FixedSpatialMaterial> light_material; + Ref<FixedSpatialMaterial> light_material_omni_icon; + Ref<FixedSpatialMaterial> light_material_directional_icon; + Ref<FixedSpatialMaterial> camera_material; + Ref<FixedSpatialMaterial> skeleton_material; + Ref<FixedSpatialMaterial> reflection_probe_material; + Ref<FixedSpatialMaterial> reflection_probe_material_internal; + Ref<FixedSpatialMaterial> gi_probe_material; + Ref<FixedSpatialMaterial> gi_probe_material_internal; + Ref<FixedSpatialMaterial> room_material; + Ref<FixedSpatialMaterial> portal_material; + Ref<FixedSpatialMaterial> raycast_material; + Ref<FixedSpatialMaterial> visibility_notifier_material; + Ref<FixedSpatialMaterial> car_wheel_material; + Ref<FixedSpatialMaterial> joint_material; + + Ref<FixedSpatialMaterial> navmesh_edge_material; + Ref<FixedSpatialMaterial> navmesh_solid_material; + Ref<FixedSpatialMaterial> navmesh_edge_material_disabled; + Ref<FixedSpatialMaterial> navmesh_solid_material_disabled; + + Ref<FixedSpatialMaterial> listener_icon; + + Ref<FixedSpatialMaterial> sample_player_icon; + Ref<FixedSpatialMaterial> stream_player_icon; + Ref<FixedSpatialMaterial> visibility_notifier_icon; + + Ref<FixedSpatialMaterial> shape_material; Ref<Texture> handle_t; Ref<Mesh> pos3d_mesh; @@ -505,5 +518,4 @@ public: SpatialEditorGizmos(); }; - #endif // SPATIAL_EDITOR_GIZMOS_H diff --git a/tools/scripts/addheader.py b/tools/scripts/addheader.py index d040d8b5d6..056e807c81 100644 --- a/tools/scripts/addheader.py +++ b/tools/scripts/addheader.py @@ -1,4 +1,4 @@ -header="""\ +header = """\ /*************************************************************************/ /* $filename */ /*************************************************************************/ @@ -6,7 +6,7 @@ header="""\ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -29,44 +29,42 @@ header="""\ /*************************************************************************/ """ -f = open("files","rb") +f = open("files", "rb") fname = f.readline() -while (fname!=""): +while (fname != ""): - fr = open(fname.strip(),"rb") - l = fr.readline() - bc=False - fsingle = fname.strip() + fr = open(fname.strip(), "rb") + l = fr.readline() + bc = False + fsingle = fname.strip() - if (fsingle.find("/")!=-1): - fsingle=fsingle[fsingle.rfind("/")+1:] - rep_fl="$filename" - rep_fi=fsingle - len_fl=len(rep_fl) - len_fi=len(rep_fi) - if (len_fi<len_fl): - for x in range(len_fl-len_fi): - rep_fi+=" " - elif (len_fl<len_fi): - for x in range(len_fi-len_fl): - rep_fl+=" " - if (header.find(rep_fl)!=-1): - text=header.replace(rep_fl,rep_fi) - else: - text=header.replace("$filename",fsingle) + if (fsingle.find("/") != -1): + fsingle = fsingle[fsingle.rfind("/") + 1:] + rep_fl = "$filename" + rep_fi = fsingle + len_fl = len(rep_fl) + len_fi = len(rep_fi) + if (len_fi < len_fl): + for x in range(len_fl - len_fi): + rep_fi += " " + elif (len_fl < len_fi): + for x in range(len_fi - len_fl): + rep_fl += " " + if (header.find(rep_fl) != -1): + text = header.replace(rep_fl, rep_fi) + else: + text = header.replace("$filename", fsingle) + while (l != ""): + if ((l.find("//") != 0 and l.find("/*") != 0 and l.strip() != "") or bc): + text += l + bc = True + l = fr.readline() - while (l!=""): - if ((l.find("//")!=0 and l.find("/*")!=0 and l.strip()!="") or bc): - text+=l - bc=True - l=fr.readline() - - fr.close() - fr=open(fname.strip(),"wb") - fr.write(text) - fr.close() - #print(text) - fname=f.readline() - + fr.close() + fr = open(fname.strip(), "wb") + fr.write(text) + fr.close() + # print(text) + fname = f.readline() diff --git a/tools/scripts/file-hex-array.py b/tools/scripts/file-hex-array.py index 05352396f1..a6cdfe541f 100755 --- a/tools/scripts/file-hex-array.py +++ b/tools/scripts/file-hex-array.py @@ -2,34 +2,38 @@ import binascii import os.path import sys + def tof(filepath): - with open(filepath, 'r') as f: - content = f.read() - content = content.replace("0x","") - content = content.split(',') - for i in range(len(content)): - if len(content[i]) == 1: content[i] = "0" + content[i] - content = "".join(content) - with open(filepath+".file", 'wb') as f: - content = f.write(content.decode("hex")) - print(os.path.basename(filepath)+".file created.") - exit(0) + with open(filepath, 'r') as f: + content = f.read() + content = content.replace("0x", "") + content = content.split(',') + for i in range(len(content)): + if len(content[i]) == 1: + content[i] = "0" + content[i] + content = "".join(content) + with open(filepath + ".file", 'wb') as f: + content = f.write(content.decode("hex")) + print(os.path.basename(filepath) + ".file created.") + exit(0) + def toa(filepath): - with open(filepath, 'rb') as f: - content = f.read() - content = binascii.hexlify(content) - content = [content[i:i+2] for i in range(0, len(content), 2)] - content = ",0x".join(content) - content = "0x" + content - content = content.replace("0x00","0x0") - with open(filepath+".array", 'w') as f: - content = f.write(content) - print(os.path.basename(filepath)+".array created.") - exit(0) + with open(filepath, 'rb') as f: + content = f.read() + content = binascii.hexlify(content) + content = [content[i:i + 2] for i in range(0, len(content), 2)] + content = ",0x".join(content) + content = "0x" + content + content = content.replace("0x00", "0x0") + with open(filepath + ".array", 'w') as f: + content = f.write(content) + print(os.path.basename(filepath) + ".array created.") + exit(0) + def usage(): - print("========================================================\n\ + print("========================================================\n\ #\n\ # Usage: python file-hex-array.py [action] [option]\n\ #\n\ @@ -40,13 +44,13 @@ def usage(): # Example : python file-hex-array.py toa 1.png\n\ #\n\ ========================================================") - exit(1) + exit(1) if len(sys.argv) != 3: - usage() + usage() if sys.argv[1] == "toa" and os.path.isfile(sys.argv[2]): - toa(sys.argv[2]) + toa(sys.argv[2]) elif sys.argv[1] == "tof" and os.path.isfile(sys.argv[2]): - tof(sys.argv[2]) + tof(sys.argv[2]) else: - usage()
\ No newline at end of file + usage() diff --git a/tools/scripts/make_bmfhdr.py b/tools/scripts/make_bmfhdr.py index 0f6f453004..1d3c40f9c6 100644 --- a/tools/scripts/make_bmfhdr.py +++ b/tools/scripts/make_bmfhdr.py @@ -2,69 +2,66 @@ import sys -if (len(sys.argv)!=2): - print("Pass me a .fnt argument!") +if (len(sys.argv) != 2): + print("Pass me a .fnt argument!") -f = open(sys.argv[1],"rb") +f = open(sys.argv[1], "rb") -name = sys.argv[1].lower().replace(".fnt","") +name = sys.argv[1].lower().replace(".fnt", "") l = f.readline() -font_height=0 -font_ascent=0 -font_charcount=0 -font_chars=[] -font_cc=0 - -while(l!=""): - - fs = l.strip().find(" ") - if (fs==-1): - l=f.readline() - continue - t = l[0:fs] - - dv = l[fs+1:].split(" ") - d = {} - for x in dv: - if (x.find("=")==-1): - continue - s = x.split("=") - d[ s[0] ] = s[1] - - - if (t=="common"): - font_height=d["lineHeight"] - font_ascent=d["base"] - - if (t=="char"): - font_chars.append(d["id"]) - font_chars.append(d["x"]) - font_chars.append(d["y"]) - font_chars.append(d["width"]) - font_chars.append(d["height"]) - font_chars.append(d["xoffset"]) - font_chars.append(d["yoffset"]) - font_chars.append(d["xadvance"]) - font_cc+=1 - - - - l = f.readline() - - -print("static const int _bi_font_"+name+"_height="+str(font_height)+";") -print("static const int _bi_font_"+name+"_ascent="+str(font_ascent)+";") -print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";") -cstr="static const int _bi_font_"+name+"_characters={" +font_height = 0 +font_ascent = 0 +font_charcount = 0 +font_chars = [] +font_cc = 0 + +while(l != ""): + + fs = l.strip().find(" ") + if (fs == -1): + l = f.readline() + continue + t = l[0:fs] + + dv = l[fs + 1:].split(" ") + d = {} + for x in dv: + if (x.find("=") == -1): + continue + s = x.split("=") + d[s[0]] = s[1] + + if (t == "common"): + font_height = d["lineHeight"] + font_ascent = d["base"] + + if (t == "char"): + font_chars.append(d["id"]) + font_chars.append(d["x"]) + font_chars.append(d["y"]) + font_chars.append(d["width"]) + font_chars.append(d["height"]) + font_chars.append(d["xoffset"]) + font_chars.append(d["yoffset"]) + font_chars.append(d["xadvance"]) + font_cc += 1 + + l = f.readline() + + +print("static const int _bi_font_" + name + "_height=" + str(font_height) + ";") +print("static const int _bi_font_" + name + "_ascent=" + str(font_ascent) + ";") +print("static const int _bi_font_" + name + "_charcount=" + str(font_cc) + ";") +cstr = "static const int _bi_font_" + name + "_characters={" for i in range(len(font_chars)): - c=font_chars[i] - if (i>0): - cstr+=", " - cstr+=c + c = font_chars[i] + if (i > 0): + cstr += ", " + cstr += c -cstr+=("};") +cstr += ("};") -print(cstr)
\ No newline at end of file +print(cstr) diff --git a/tools/scripts/make_glwrapper.py b/tools/scripts/make_glwrapper.py index b4c582f1eb..5694d2327e 100644 --- a/tools/scripts/make_glwrapper.py +++ b/tools/scripts/make_glwrapper.py @@ -1,32 +1,32 @@ #! /usr/bin/env python import sys -if (len(sys.argv)<2): - print("usage: make_glwrapper.py <headers>") - sys.exit(255) +if (len(sys.argv) < 2): + print("usage: make_glwrapper.py <headers>") + sys.exit(255) -functions=[] -types=[] -constants=[] +functions = [] +types = [] +constants = [] -READ_FUNCTIONS=0 -READ_TYPES=1 -READ_CONSTANTS=2 +READ_FUNCTIONS = 0 +READ_TYPES = 1 +READ_CONSTANTS = 2 -read_what=READ_TYPES +read_what = READ_TYPES -for x in (range(len(sys.argv)-1)): - f=open(sys.argv[x+1],"r") +for x in (range(len(sys.argv) - 1)): + f = open(sys.argv[x + 1], "r") - while(True): + while(True): - line=f.readline() - if (line==""): - break + line = f.readline() + if (line == ""): + break - line=line.replace("\n","").strip() - """ + line = line.replace("\n", "").strip() + """ if (line.find("[types]")!=-1): read_what=READ_TYPES continue @@ -38,67 +38,66 @@ for x in (range(len(sys.argv)-1)): continue """ - if (line.find("#define")!=-1): - if (line.find("0x")==-1 and line.find("GL_VERSION")==-1): - continue - constants.append(line) - elif (line.find("typedef")!=-1): - if (line.find("(")!=-1 or line.find(")")!=-1 or line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("GL")==-1): - continue - types.append(line) - elif (line.find("APIENTRY")!=-1 and line.find("GLAPI")!=-1): + if (line.find("#define") != -1): + if (line.find("0x") == -1 and line.find("GL_VERSION") == -1): + continue + constants.append(line) + elif (line.find("typedef") != -1): + if (line.find("(") != -1 or line.find(")") != -1 or line.find("ARB") != -1 or line.find("EXT") != -1 or line.find("GL") == -1): + continue + types.append(line) + elif (line.find("APIENTRY") != -1 and line.find("GLAPI") != -1): - if (line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("NV")!=-1): - continue + if (line.find("ARB") != -1 or line.find("EXT") != -1 or line.find("NV") != -1): + continue - line=line.replace("APIENTRY","") - line=line.replace("GLAPI","") + line = line.replace("APIENTRY", "") + line = line.replace("GLAPI", "") - glpos=line.find(" gl") - if (glpos==-1): + glpos = line.find(" gl") + if (glpos == -1): - glpos=line.find("\tgl") - if (glpos==-1): - continue + glpos = line.find("\tgl") + if (glpos == -1): + continue - ret=line[:glpos].strip(); + ret = line[:glpos].strip() - line=line[glpos:].strip() - namepos=line.find("(") + line = line[glpos:].strip() + namepos = line.find("(") - if (namepos==-1): - continue + if (namepos == -1): + continue - name=line[:namepos].strip() - line=line[namepos:] + name = line[:namepos].strip() + line = line[namepos:] - argpos=line.rfind(")") - if (argpos==-1): - continue + argpos = line.rfind(")") + if (argpos == -1): + continue - args=line[1:argpos] + args = line[1:argpos] - funcdata={} - funcdata["ret"]=ret - funcdata["name"]=name - funcdata["args"]=args + funcdata = {} + funcdata["ret"] = ret + funcdata["name"] = name + funcdata["args"] = args - functions.append(funcdata) - print(funcdata) + functions.append(funcdata) + print(funcdata) +# print(types) +# print(constants) +# print(functions) -#print(types) -#print(constants) -#print(functions) - -f=open("glwrapper.h","w") +f = open("glwrapper.h", "w") f.write("#ifndef GL_WRAPPER\n") f.write("#define GL_WRAPPER\n\n\n") -header_code="""\ +header_code = """\ #if defined(__gl_h_) || defined(__GL_H__) #error gl.h included before glwrapper.h #endif @@ -128,56 +127,52 @@ header_code="""\ f.write("#include <stddef.h>\n\n\n") -f.write(header_code); +f.write(header_code) f.write("#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\n") f.write("#if defined(_WIN32) && !defined(__CYGWIN__)\n") f.write("#define GLWRP_APIENTRY __stdcall\n") -f.write("#else\n"); +f.write("#else\n") f.write("#define GLWRP_APIENTRY \n") -f.write("#endif\n\n"); +f.write("#endif\n\n") for x in types: - f.write(x+"\n") + f.write(x + "\n") f.write("\n\n") for x in constants: - f.write(x+"\n") + f.write(x + "\n") f.write("\n\n") for x in functions: - f.write("extern "+x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+");\n") - f.write("#define "+x["name"]+" __wrapper_"+x["name"]+"\n") + f.write("extern " + x["ret"] + " GLWRP_APIENTRY (*__wrapper_" + x["name"] + ")(" + x["args"] + ");\n") + f.write("#define " + x["name"] + " __wrapper_" + x["name"] + "\n") f.write("\n\n") -f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n"); +f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n") f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n") f.write("#ifdef __cplusplus\n}\n#endif\n") f.write("#endif\n\n") -f=open("glwrapper.c","w") +f = open("glwrapper.c", "w") f.write("\n\n") f.write("#include \"glwrapper.h\"\n") f.write("\n\n") for x in functions: - f.write(x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+")=NULL;\n") + f.write(x["ret"] + " GLWRP_APIENTRY (*__wrapper_" + x["name"] + ")(" + x["args"] + ")=NULL;\n") f.write("\n\n") f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) ) {\n") f.write("\n") for x in functions: - f.write("\t__wrapper_"+x["name"]+"=("+x["ret"]+" GLWRP_APIENTRY (*)("+x["args"]+"))wrapperFunc(\""+x["name"]+"\");\n") + f.write("\t__wrapper_" + x["name"] + "=(" + x["ret"] + " GLWRP_APIENTRY (*)(" + x["args"] + "))wrapperFunc(\"" + x["name"] + "\");\n") f.write("\n\n") f.write("}\n") f.write("\n\n") - - - - diff --git a/tools/scripts/makeargs.py b/tools/scripts/makeargs.py index 8c5539c5fe..2cd47ae087 100644 --- a/tools/scripts/makeargs.py +++ b/tools/scripts/makeargs.py @@ -1,5 +1,5 @@ -text=""" +text = """ #define FUNC$numR(m_r,m_func,$argt)\\ virtual m_r m_func($argtp) { \\ if (Thread::get_caller_ID()!=server_thread) {\\ @@ -64,25 +64,19 @@ text=""" """ +for i in range(1, 8): -for i in range(1,8): - - tp="" - p="" - t="" - for j in range(i): - if (j>0): - tp+=", " - p+=", " - t+=", " - tp +=("m_arg"+str(j+1)+" p"+str(j+1)) - p+=("p"+str(j+1)) - t+=("m_arg"+str(j+1)) - - t = text.replace("$argtp",tp).replace("$argp",p).replace("$argt",t).replace("$num",str(i)) - print(t) - - - - + tp = "" + p = "" + t = "" + for j in range(i): + if (j > 0): + tp += ", " + p += ", " + t += ", " + tp += ("m_arg" + str(j + 1) + " p" + str(j + 1)) + p += ("p" + str(j + 1)) + t += ("m_arg" + str(j + 1)) + t = text.replace("$argtp", tp).replace("$argp", p).replace("$argt", t).replace("$num", str(i)) + print(t) diff --git a/tools/scripts/memsort.py b/tools/scripts/memsort.py index d2e4fe0226..fb636b0f78 100644 --- a/tools/scripts/memsort.py +++ b/tools/scripts/memsort.py @@ -1,35 +1,35 @@ import sys -arg="memdump.txt" +arg = "memdump.txt" -if (len(sys.argv)>1): - arg=sys.argv[1] +if (len(sys.argv) > 1): + arg = sys.argv[1] -f = open(arg,"rb") +f = open(arg, "rb") -l=f.readline() +l = f.readline() sum = {} -cnt={} +cnt = {} -while(l!=""): +while(l != ""): - s=l.split("-") - amount = int(s[1]) - what=s[2] - if (what in sum): - sum[what]+=amount - cnt[what]+=1 - else: - sum[what]=amount - cnt[what]=1 + s = l.split("-") + amount = int(s[1]) + what = s[2] + if (what in sum): + sum[what] += amount + cnt[what] += 1 + else: + sum[what] = amount + cnt[what] = 1 - l=f.readline() + l = f.readline() for x in sum: - print(x.strip()+"("+str(cnt[x])+"):\n: "+str(sum[x])) + print(x.strip() + "(" + str(cnt[x]) + "):\n: " + str(sum[x])) diff --git a/tools/scripts/svgs_2_pngs.py b/tools/scripts/svgs_2_pngs.py index 879926ab42..b24324dcd7 100644 --- a/tools/scripts/svgs_2_pngs.py +++ b/tools/scripts/svgs_2_pngs.py @@ -51,7 +51,7 @@ def export_icons(): # name without extensions name_only = file_name.replace('.svg', '') - out_icon_names = [name_only] # export to a png with the same file name + out_icon_names = [name_only] # export to a png with the same file name theme_out_icon_names = [] # special cases if special_icons.has_key(name_only): @@ -73,7 +73,6 @@ def export_icons(): svg_to_png(source_path, theme_dir_base + theme_out_icon_name, 90) - def export_theme(): svgs_path = theme_dir_source file_names = [f for f in listdir(svgs_path) if isfile(join(svgs_path, f))] @@ -82,7 +81,7 @@ def export_theme(): # name without extensions name_only = file_name.replace('.svg', '') - out_icon_names = [name_only] # export to a png with the same file name + out_icon_names = [name_only] # export to a png with the same file name # special cases if theme_icons.has_key(name_only): special_icon = theme_icons[name_only] @@ -102,36 +101,36 @@ special_icons = { output_names=['icon_add'], theme_output_names=['icon_add', 'icon_zoom_more'] ), - 'icon_new': dict( output_names=['icon_file'] ), - 'icon_animation_tree_player': dict( output_names=['icon_animation_tree'] ), + 'icon_new': dict(output_names=['icon_file']), + 'icon_animation_tree_player': dict(output_names=['icon_animation_tree']), 'icon_tool_rotate': dict( output_names=['icon_reload'], - theme_output_names= ['icon_reload'] + theme_output_names=['icon_reload'] ), - 'icon_multi_edit': dict( output_names=['icon_multi_node_edit'] ), + 'icon_multi_edit': dict(output_names=['icon_multi_node_edit']), 'icon_folder': dict( output_names=['icon_load', 'icon_open'], - theme_output_names= ['icon_folder'] + theme_output_names=['icon_folder'] ), - 'icon_file_list': dict( output_names=['icon_enum'] ), - 'icon_collision_2d': dict( output_names=['icon_collision_polygon_2d', 'icon_polygon_2d'] ), - 'icon_class_list': dict( output_names=['icon_filesystem'] ), - 'icon_color_ramp': dict( output_names=['icon_graph_color_ramp'] ), - 'icon_translation': dict( output_names=['icon_p_hash_translation'] ), - 'icon_shader': dict( output_names=['icon_shader_material', 'icon_material_shader'] ), - 'icon_canvas_item_shader_graph': dict( output_names=['icon_material_shader_graph'] ), - - 'icon_color_pick': dict( theme_output_names= ['icon_color_pick'], avoid_self=True ), - 'icon_play': dict( theme_output_names= ['icon_play'] ), - 'icon_stop': dict( theme_output_names= ['icon_stop'] ), - 'icon_zoom_less': dict( theme_output_names= ['icon_zoom_less'], avoid_self=True ), - 'icon_zoom_reset': dict( theme_output_names= ['icon_zoom_reset'], avoid_self=True ), + 'icon_file_list': dict(output_names=['icon_enum']), + 'icon_collision_2d': dict(output_names=['icon_collision_polygon_2d', 'icon_polygon_2d']), + 'icon_class_list': dict(output_names=['icon_filesystem']), + 'icon_color_ramp': dict(output_names=['icon_graph_color_ramp']), + 'icon_translation': dict(output_names=['icon_p_hash_translation']), + 'icon_shader': dict(output_names=['icon_shader_material', 'icon_material_shader']), + 'icon_canvas_item_shader_graph': dict(output_names=['icon_material_shader_graph']), + + 'icon_color_pick': dict(theme_output_names=['icon_color_pick'], avoid_self=True), + 'icon_play': dict(theme_output_names=['icon_play']), + 'icon_stop': dict(theme_output_names=['icon_stop']), + 'icon_zoom_less': dict(theme_output_names=['icon_zoom_less'], avoid_self=True), + 'icon_zoom_reset': dict(theme_output_names=['icon_zoom_reset'], avoid_self=True), 'icon_snap': dict(theme_output_names=['icon_snap']) } theme_icons = { - 'icon_close': dict(output_names=['close', 'close_hl']), - 'tab_menu': dict(output_names=['tab_menu_hl']) + 'icon_close': dict(output_names=['close', 'close_hl']), + 'tab_menu': dict(output_names=['tab_menu_hl']) } export_icons() diff --git a/tools/translations/ar.po b/tools/translations/ar.po index de03046e16..0bfef1cfe1 100644 --- a/tools/translations/ar.po +++ b/tools/translations/ar.po @@ -1,5 +1,5 @@ # Arabic translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Mohammmad Khashashneh <mohammad.rasmi@gmail.com>, 2016. @@ -33,12 +33,6 @@ msgid "step argument is zero!" msgstr "" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "" @@ -383,74 +377,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -562,10 +556,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -625,7 +615,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1768,6 +1759,11 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "عمل اشتراك" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1835,7 +1831,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2060,7 +2058,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2740,6 +2740,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2967,6 +2968,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3867,6 +3872,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4731,18 +4779,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5505,6 +5541,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5964,10 +6058,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6111,7 +6201,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6144,10 +6234,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6224,14 +6310,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6240,10 +6318,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6282,10 +6356,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6310,10 +6380,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6352,10 +6418,15 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" msgstr "" #: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "عمل اشتراك" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "" @@ -6378,13 +6449,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6480,6 +6549,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6492,15 +6565,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "عمل اشتراك" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6512,7 +6586,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6678,3 +6752,7 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" diff --git a/tools/translations/bg.po b/tools/translations/bg.po index f1fdc9086a..9197a6e702 100644 --- a/tools/translations/bg.po +++ b/tools/translations/bg.po @@ -1,5 +1,5 @@ # Bulgarian translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Bojidar Marinov <bojidar.marinov.bg@gmail.com>, 2016. @@ -35,12 +35,6 @@ msgid "step argument is zero!" msgstr "Стъпката на range() е нула!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp #, fuzzy msgid "Not a script with an instance" msgstr "Скриптът няма инстанция" @@ -395,75 +389,75 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Error creating the signature object." msgstr "Имаше грешка при изнасяне на проекта!" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -601,10 +595,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -667,7 +657,8 @@ msgstr "" msgid "Cancel" msgstr "Отказ" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "Добре" @@ -1811,6 +1802,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1878,7 +1873,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2103,7 +2100,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Изберете главна сцена" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2784,6 +2783,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -3011,6 +3011,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3911,6 +3915,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4776,18 +4823,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5550,6 +5585,66 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Създаване на папка" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Преходи" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6009,10 +6104,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6156,7 +6247,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6190,10 +6281,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6272,14 +6359,6 @@ msgid "Scene Run Settings" msgstr "Настройки за пускане на сцена" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6288,10 +6367,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6330,10 +6405,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6358,10 +6429,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6400,8 +6467,14 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +#, fuzzy +msgid "Attach Script" +msgstr "Нова сцена" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Нова сцена" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6427,13 +6500,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6529,6 +6600,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Грешка при зареждането на шрифта." + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6541,15 +6617,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "Създаване на папка" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6561,8 +6638,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "Нова сцена" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6727,3 +6805,7 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" diff --git a/tools/translations/bn.po b/tools/translations/bn.po index 19861e2158..a3a3a072fc 100644 --- a/tools/translations/bn.po +++ b/tools/translations/bn.po @@ -1,14 +1,14 @@ # Bengali translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # -# Abu Md. Maruf Sarker <maruf.webdev@gmail.com>, 2016. +# Abu Md. Maruf Sarker <maruf.webdev@gmail.com>, 2016-2017. # Tahmid Karim <tahmidk15@gmail.com>, 2016. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-09-02 13:47+0000\n" +"PO-Revision-Date: 2017-01-07 04:19+0000\n" "Last-Translator: ABU MD. MARUF SARKER <maruf.webdev@gmail.com>\n" "Language-Team: Bengali <https://hosted.weblate.org/projects/godot-engine/" "godot/bn/>\n" @@ -16,12 +16,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.8\n" +"X-Generator: Weblate 2.11-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "অগ্রহণযোগ্য মান convert()-এ গিয়েছে, TYPE_* ধ্রুবক ব্যবহার করুন।" +msgstr "অগ্রহণযোগ্য মান/আর্গুমেন্ট convert()-এ গিয়েছে, TYPE_* ধ্রুবক ব্যবহার করুন।" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -30,13 +30,7 @@ msgstr "বিন্যাস জানার জন্য যথেষ্ট #: modules/gdscript/gd_functions.cpp msgid "step argument is zero!" -msgstr "ধাপ মান শূন্য!" - -#: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" +msgstr "ধাপ মান/আর্গুমেন্ট শূন্য!" #: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" @@ -167,9 +161,8 @@ msgid "Editing Signal:" msgstr "সংকেত/সিগন্যাল সম্পাদন:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "অ্যানিমেশনের (Anim) ট্র্যানজিশন/স্থানান্তরণ পরিবর্তন করুন" +msgstr "অভিব্যক্তি (Expression) পরিবর্তন করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -178,84 +171,86 @@ msgstr "নোড সংযোজন করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." msgstr "" -"গেটার (Getter) ফেলতে/নামাতে মেটা কী (Meta) চাপুন। জেনেরিক সিগনেচার (generic " -"signature) ফেলতে/নামাতে শিফট কী (Shift) চাপুন।" +"গেটার (Getter) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন। জেনেরিক সিগনেচার " +"(generic signature) তৈরি করতে/নামাতে শিফট কী (Shift) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" -"গেটার (Getter) ফেলতে/নামাতে কন্ট্রোল কী (Ctrl) চাপুন। জেনেরিক সিগনেচার (generic " -"signature) ফেলতে/নামাতে শিফট কী (Shift) চাপুন।" +"গেটার (Getter) তৈরি করতে/নামাতে কন্ট্রোল কী (Ctrl) চেপে রাখুন। জেনেরিক সিগনেচার " +"(generic signature) তৈরি করতে/নামাতে শিফট কী (Shift) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a simple reference to the node." msgstr "" +"নোডে সাধারণ সম্পর্ক (reference) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" +"নোডে সাধারণ সম্পর্ক (reference) তৈরি করতে/নামাতে কন্ট্রোল কী (Ctrl) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Variable Setter." -msgstr "" +msgstr "চলক সেটার (Variable Setter) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." msgstr "" +"চলক সেটার (Variable Setter) তৈরি করতে/নামাতে কন্ট্রোল কী (Ctrl) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp msgid "Add Preload Node" -msgstr "" +msgstr "প্রিলোড নোড যুক্ত করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" -msgstr "" +msgstr "শাখা (tree) হতে নোড (সমূহ) যুক্ত করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" -msgstr "" +msgstr "গেটার (Getter) এর বৈশিষ্ট্যে যুক্ত করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Add Setter Property" -msgstr "" +msgstr "সেটার (Setter) এর বৈশিষ্ট্যে যুক্ত করুন" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "অনুবাদসমূহ" +msgstr "শর্ত (Condition)" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "ক্রম (Sequence)" #: modules/visual_script/visual_script_editor.cpp msgid "Switch" -msgstr "" +msgstr "সুইচ (Switch)" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "পুনরুক্তিকারী (Iterator)" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "যতক্ষণ (While)" #: modules/visual_script/visual_script_editor.cpp msgid "Return" -msgstr "" +msgstr "ফেরৎ পাঠান (Return)" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" -msgstr "" +msgstr "ডাকুন (Call)" #: modules/visual_script/visual_script_editor.cpp msgid "Get" -msgstr "" +msgstr "মান পান (Get)" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp msgid "Set" -msgstr "" +msgstr "নিযুক্ত করুন (Set)" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp @@ -264,23 +259,23 @@ msgstr "" #: tools/editor/plugins/shader_editor_plugin.cpp #: tools/editor/project_manager.cpp msgid "Edit" -msgstr "" +msgstr "সম্পাদন করুন (Edit)" #: modules/visual_script/visual_script_editor.cpp msgid "Base Type:" -msgstr "" +msgstr "তলের ধরণ (Base Type):" #: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp msgid "Members:" -msgstr "" +msgstr "সদস্যগণ (Members):" #: modules/visual_script/visual_script_editor.cpp msgid "Available Nodes:" -msgstr "" +msgstr "উপস্থিত নোডসমূহ:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit graph" -msgstr "" +msgstr "গ্রাফ সম্পাদন করতে ফাংশন নির্বাচন অথবা তৈরি করুন" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp #: tools/editor/connections_dialog.cpp @@ -293,19 +288,19 @@ msgstr "" #: tools/editor/project_settings.cpp tools/editor/property_editor.cpp #: tools/editor/run_settings_dialog.cpp tools/editor/settings_config_dialog.cpp msgid "Close" -msgstr "" +msgstr "বন্ধ করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Signal Arguments:" -msgstr "" +msgstr "সংকেত/সিগন্যাল-এর মান/আর্গুমেন্ট-সমূহ সম্পাদন করুন:" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Variable:" -msgstr "" +msgstr "চলক/ভেরিয়েবল সম্পাদন করুন:" #: modules/visual_script/visual_script_editor.cpp msgid "Change" -msgstr "" +msgstr "পরিবর্তন করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" @@ -314,19 +309,19 @@ msgstr "নির্বাচিত সমূহ অপসারণ করুন #: modules/visual_script/visual_script_editor.cpp #: tools/editor/plugins/script_text_editor.cpp msgid "Toggle Breakpoint" -msgstr "" +msgstr "ছেদবিন্দু অদলবদল করুন (টগল ব্রেকপয়েন্ট)" #: modules/visual_script/visual_script_editor.cpp msgid "Find Node Type" -msgstr "" +msgstr "নোডের ধরণ সন্ধান করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Copy Nodes" -msgstr "" +msgstr "নোড-সমূহ প্রতিলিপি/কপি করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Cut Nodes" -msgstr "" +msgstr "নোড-সমূহ কর্তন/কাট করুন" #: modules/visual_script/visual_script_editor.cpp msgid "Paste Nodes" @@ -334,138 +329,142 @@ msgstr "নোড-সমূহ প্রতিলেপন/পেস্ট ক #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " -msgstr "" +msgstr "যোগান/ইনপুট-এর ধরণ পুনরাবৃত্তিমূলক নয়: " #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" -msgstr "" +msgstr "পুনরাবৃত্তকারী অকার্যকর হয়ে পড়েছে" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid: " -msgstr "" +msgstr "পুনরাবৃত্তকারী অকার্যকর হয়ে পড়েছে: " #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name." -msgstr "" +msgstr "সূচক/ইনডেক্স মানের অগ্রহনযোগ্য নাম।" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Base object is not a Node!" -msgstr "" +msgstr "ভিত্তিটি (বেস) নোড নয়!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Path does not lead Node!" -msgstr "" +msgstr "পথটি নোডকে দিকনির্দেশ করে না!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." -msgstr "" +msgstr "%s নোডে সূচক/ইনডেক্স মানের অগ্রহনযোগ্য নাম '%s'।" #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " -msgstr "" +msgstr ": অগ্রহনযোগ্য মান/আর্গুমেন্ট-এর ধরণ: " #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid arguments: " -msgstr "" +msgstr ": অগ্রহনযোগ্য মান/আর্গুমেন্ট-সমূহ: " #: modules/visual_script/visual_script_nodes.cpp msgid "VariableGet not found in script: " -msgstr "" +msgstr "স্ক্রিপ্টে চলক-প্রাপক (VariableGet) পাওয়া যায়নি: " #: modules/visual_script/visual_script_nodes.cpp msgid "VariableSet not found in script: " -msgstr "" +msgstr "স্ক্রিপ্টে চলক-স্থাপক (VariableSet) পাওয়া যায়নি: " #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." -msgstr "" +msgstr "স্বনির্মিত (custom) নোডে কোনো _step() মেথড নেই, গ্রাফ প্রক্রিয়াকরণ অসম্ভব।" #: modules/visual_script/visual_script_nodes.cpp msgid "" "Invalid return value from _step(), must be integer (seq out), or string " "(error)." msgstr "" +"_step() হতে অগ্রহনযোগ্য মান ফেরৎ এসেছে, মান অবশ্যই পূর্ণসংখ্যা (integer) (ক্রমিক), " +"অথবা শব্দমালা/বাক্য (string) (ভুল/সমস্যা) হতে হবে।" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "এইমাত্র চাপিত" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "এইমাত্র অব্যাহিত/মুক্ত" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"সার্টিফিকেট ফাইলটি পড়া সম্ভব হচ্ছে না। ফাইলের পথ এবং পাসওয়ার্ড দুটোই কি সঠিক দেয়া " +"হয়েছে?" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "" +msgstr "স্বাক্ষরিত বস্তু (signature object) তৈরিতে সমস্যা হয়েছে।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "প্যাকেজের স্বাক্ষর (package signature) তৈরিতে সমস্যা হয়েছে।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"এক্সপোর্ট এর জন্য প্রয়োজণীয় টেমপ্লেট পাওয়া যায়নি।\n" +"এক্সপোর্ট টেমপ্লেট-সমূহ ডাউনলোড করে ইন্সটল করুন।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "স্বনির্মিত ডিবাগ (debug) প্যাকেজ খুঁজে পাওয়া যায়নি।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "স্বনির্মিত রিলিস (release) প্যাকেজ খুঁজে পাওয়া যায়নি।" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।" +msgstr "একক (অনন্য) নামটি অগ্রহনযোগ্য।" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।" +msgstr "পণ্যের অগ্রহনযোগ্য GUID।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "" +msgstr "প্রকাশকের অগ্রহনযোগ্য GUID।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "" +msgstr "পটভূমির (background) অগ্রহনযোগ্য রঙ।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "স্টোর লোগোর (Store Logo) ছবির অগ্রহনযোগ্য মাত্রা (৫০x৫০ হতে হবে)।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "" +msgstr "৪৪x৪৪ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৪৪x৪৪ হতে হবে)।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "" +msgstr "৭১x৭১ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৭১x৭১ হতে হবে)।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "" +msgstr "১৫০x১৫০ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (১৫০x১৫০ হতে হবে)।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "" +msgstr "৩১০x৩১০ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৩১০x৩১০ হতে হবে)।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "" +msgstr "৩১০x১৫০ প্রশস্ত লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৩১০x১৫০ হতে হবে)।" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." -msgstr "" +msgstr "স্প্ল্যাশ পর্দার (splash screen) ছবির অগ্রহনযোগ্য মাত্রা (৬২০x৩০০ হতে হবে)।" #: scene/2d/animated_sprite.cpp msgid "" @@ -480,8 +479,8 @@ msgid "" "Only one visible CanvasModulate is allowed per scene (or set of instanced " "scenes). The first created one will work, while the rest will be ignored." msgstr "" -"প্রতি scene-এ (অথবা ইন্সট্যান্সড scene-এর সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান " -"CanvasModulate সম্ভব। সর্বপ্রথমেরটি দৃশ্যত হলেও বাকিগুলো বাতিল হয়ে যাবে।" +"প্রতি দৃশ্যে (অথবা ইন্সট্যান্সড দৃশ্যের সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান CanvasModulate " +"সম্ভব। সর্বপ্রথমেরটি দৃশ্যত হলেও বাকিগুলো বাতিল হয়ে যাবে।" #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -598,10 +597,6 @@ msgstr "" "VisibilityEnable2D সর্বোত্তম কার্যকর হয় যখন সম্পাদিত দৃশ্য মূল দৃশ্য হিসেবে সরাসরি " "ব্যবহৃত হয়।" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -649,16 +644,15 @@ msgstr "" "এটা শুধুমাত্র ন্যাভিগেশনের তথ্য প্রদান করে।" #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." -msgstr "Path এর দিক অবশ্যই একটি কার্যকর Particles2D এর দিকে নির্দেশ করাতে হবে।" +msgstr "Path এর দিক অবশ্যই একটি কার্যকর Spatial নোডের এর দিকে নির্দেশ করাতে হবে।" #: scene/3d/scenario_fx.cpp msgid "" "Only one WorldEnvironment is allowed per scene (or set of instanced scenes)." msgstr "" -"প্রতি scene-এ (অথবা ইন্সট্যান্সড scene-এর সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান " -"WorldEnvironment সম্ভব।" +"প্রতি দৃশ্যে (অথবা ইন্সট্যান্সড দৃশ্যের সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান WorldEnvironment " +"সম্ভব।" #: scene/3d/spatial_sample_player.cpp msgid "" @@ -680,7 +674,8 @@ msgstr "" msgid "Cancel" msgstr "বাতিল" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "সঠিক" @@ -912,7 +907,7 @@ msgstr "ফন্ট তুলতে/লোডে সমস্যা হয়ে #: scene/resources/dynamic_font.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Invalid font size." -msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।" +msgstr "ফন্টের আকার অগ্রহনযোগ্য।" #: tools/editor/animation_editor.cpp msgid "Disabled" @@ -1171,83 +1166,84 @@ msgstr "নির্বাচিত ট্র্যাক/পথ অপসার #: tools/editor/animation_editor.cpp msgid "Track tools" -msgstr "" +msgstr "ট্র্যাক/পথের সরঞ্জামসমূহ" #: tools/editor/animation_editor.cpp msgid "Enable editing of individual keys by clicking them." -msgstr "" +msgstr "প্রতিটি চাবির সম্পাদন-যোগ্যতা সক্রিয় করার জন্য তাদের নির্বাচন করুন।" #: tools/editor/animation_editor.cpp msgid "Anim. Optimizer" -msgstr "" +msgstr "অ্যানিমেশন পরিমার্জনকারী" #: tools/editor/animation_editor.cpp msgid "Max. Linear Error:" -msgstr "" +msgstr "সর্বোচ্চ রৈখিক ভুল/সমস্যা:" #: tools/editor/animation_editor.cpp msgid "Max. Angular Error:" -msgstr "" +msgstr "সর্বোচ্চ কৌণিক ভুল/সমস্যা:" #: tools/editor/animation_editor.cpp msgid "Max Optimizable Angle:" -msgstr "" +msgstr "সর্বোচ্চ পরিশোধনযোগ্য কোণ:" #: tools/editor/animation_editor.cpp msgid "Optimize" -msgstr "" +msgstr "পরিমার্জন করুন" #: tools/editor/animation_editor.cpp msgid "Select an AnimationPlayer from the Scene Tree to edit animations." msgstr "" +"অ্যানিমেশনসমূহ সম্পাদন করতে দৃশ্যের তালিকা থেকে একটি AnimationPlayer নির্বাচন করুন।" #: tools/editor/animation_editor.cpp msgid "Key" -msgstr "" +msgstr "চাবি" #: tools/editor/animation_editor.cpp msgid "Transition" -msgstr "" +msgstr "ট্র্যানজিশন/স্থানান্তরণ" #: tools/editor/animation_editor.cpp msgid "Scale Ratio:" -msgstr "" +msgstr "স্কেল/মাপের অনুপাত:" #: tools/editor/animation_editor.cpp msgid "Call Functions in Which Node?" -msgstr "" +msgstr "কোন নোডে ফাংশন(সমূহ) ডাকবেন?" #: tools/editor/animation_editor.cpp msgid "Remove invalid keys" -msgstr "" +msgstr "অগ্রহনযোগ্য চাবিসমূহ অপসারণ করুন" #: tools/editor/animation_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "" +msgstr "অমীমাংসিত এবং খালি/অসার ট্র্যাক/পথসমূহ অপসারণ করুন" #: tools/editor/animation_editor.cpp msgid "Clean-up all animations" -msgstr "" +msgstr "সকল অ্যানিমেশনসমূহ পরিচ্ছন্ন করুন" #: tools/editor/animation_editor.cpp msgid "Clean-Up Animation(s) (NO UNDO!)" -msgstr "" +msgstr "সকল অ্যানিমেশনসমূহ পরিচ্ছন্ন করুন (অফেরৎযোগ্য!)" #: tools/editor/animation_editor.cpp msgid "Clean-Up" -msgstr "" +msgstr "পরিচ্ছন্ন করুন" #: tools/editor/array_property_edit.cpp msgid "Resize Array" -msgstr "" +msgstr "শ্রেণীবিন্যাস/সারি পুনর্মাপন করুন" #: tools/editor/array_property_edit.cpp msgid "Change Array Value Type" -msgstr "" +msgstr "শ্রেণীবিন্যাস/সারির মানের ধরণ পরিবর্তন করুন" #: tools/editor/array_property_edit.cpp msgid "Change Array Value" -msgstr "" +msgstr "শ্রেণীবিন্যাস/সারির মান পরিবর্তন করুন" #: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp #: tools/editor/editor_help.cpp tools/editor/editor_node.cpp @@ -1255,100 +1251,100 @@ msgstr "" #: tools/editor/property_selector.cpp tools/editor/quick_open.cpp #: tools/editor/settings_config_dialog.cpp msgid "Search:" -msgstr "" +msgstr "অনুসন্ধান করুন:" #: tools/editor/asset_library_editor_plugin.cpp msgid "Sort:" -msgstr "" +msgstr "সাজান:" #: tools/editor/asset_library_editor_plugin.cpp msgid "Reverse" -msgstr "" +msgstr "উল্টান/বিপরীত দিকে ফিরান" #: tools/editor/asset_library_editor_plugin.cpp #: tools/editor/project_settings.cpp msgid "Category:" -msgstr "" +msgstr "বিভাগ:" #: tools/editor/asset_library_editor_plugin.cpp msgid "All" -msgstr "" +msgstr "সকল" #: tools/editor/asset_library_editor_plugin.cpp msgid "Site:" -msgstr "" +msgstr "ওয়েবসাইট:" #: tools/editor/asset_library_editor_plugin.cpp msgid "Support.." -msgstr "" +msgstr "সমর্থন.." #: tools/editor/asset_library_editor_plugin.cpp msgid "Official" -msgstr "" +msgstr "অফিসিয়াল/প্রাথমিক উৎস" #: tools/editor/asset_library_editor_plugin.cpp msgid "Community" -msgstr "" +msgstr "কমিউনিটি/যৌথ-সামাজিক উৎস" #: tools/editor/asset_library_editor_plugin.cpp msgid "Testing" -msgstr "" +msgstr "পরীক্ষামূলক উৎস" #: tools/editor/asset_library_editor_plugin.cpp msgid "Assets ZIP File" -msgstr "" +msgstr "প্রয়োজনীয় উপকরণসমূহের ZIP ফাইল" #: tools/editor/call_dialog.cpp msgid "Method List For '%s':" -msgstr "" +msgstr "'%s' এর জন্য মেথডের তালিকা:" #: tools/editor/call_dialog.cpp msgid "Method List:" -msgstr "" +msgstr "মেথডের তালিকা:" #: tools/editor/call_dialog.cpp msgid "Arguments:" -msgstr "" +msgstr "মান/আর্গুমেন্ট-সমূহ:" #: tools/editor/call_dialog.cpp msgid "Return:" -msgstr "" +msgstr "প্রত্যাবর্তন:" #: tools/editor/code_editor.cpp msgid "Go to Line" -msgstr "" +msgstr "লাইন-এ যান" #: tools/editor/code_editor.cpp msgid "Line Number:" -msgstr "" +msgstr "লাইন নাম্বার:" #: tools/editor/code_editor.cpp msgid "No Matches" -msgstr "" +msgstr "কোনো মিল নেই" #: tools/editor/code_editor.cpp msgid "Replaced %d Ocurrence(s)." -msgstr "" +msgstr "%d টি সংঘটন প্রতিস্থাপিত হয়েছে।" #: tools/editor/code_editor.cpp msgid "Replace" -msgstr "" +msgstr "প্রতিস্থাপন করুন" #: tools/editor/code_editor.cpp msgid "Replace All" -msgstr "" +msgstr "সমস্তগুলি প্রতিস্থাপন করুন" #: tools/editor/code_editor.cpp msgid "Match Case" -msgstr "" +msgstr "অক্ষরের মাত্রা (বড়/ছোট-হাতের) মিল করুন" #: tools/editor/code_editor.cpp msgid "Whole Words" -msgstr "" +msgstr "সম্পূর্ণ শব্দ" #: tools/editor/code_editor.cpp msgid "Selection Only" -msgstr "" +msgstr "শুধুমাত্র নির্বাচিতসমূহ" #: tools/editor/code_editor.cpp tools/editor/editor_help.cpp #: tools/editor/plugins/script_editor_plugin.cpp @@ -1356,79 +1352,81 @@ msgstr "" #: tools/editor/plugins/shader_editor_plugin.cpp #: tools/editor/project_settings.cpp msgid "Search" -msgstr "" +msgstr "অনুসন্ধান করুন" #: tools/editor/code_editor.cpp tools/editor/editor_help.cpp msgid "Find" -msgstr "" +msgstr "সন্ধান করুন" #: tools/editor/code_editor.cpp msgid "Next" -msgstr "" +msgstr "পরবর্তী" #: tools/editor/code_editor.cpp msgid "Replaced %d ocurrence(s)." -msgstr "" +msgstr "%d টি সংঘটন প্রতিস্থাপিত হয়েছে।" #: tools/editor/code_editor.cpp msgid "Not found!" -msgstr "" +msgstr "খুঁজে পাওয়া যায়নি!" #: tools/editor/code_editor.cpp msgid "Replace By" -msgstr "" +msgstr "এর দ্বারা প্রতিস্থাপন করুন" #: tools/editor/code_editor.cpp msgid "Case Sensitive" -msgstr "" +msgstr "অক্ষরের মাত্রা (বড়/ছোট-হাতের) সংবেদনশীল" #: tools/editor/code_editor.cpp msgid "Backwards" -msgstr "" +msgstr "পিছনের/অতীতের দিকে" #: tools/editor/code_editor.cpp msgid "Prompt On Replace" -msgstr "" +msgstr "প্রতিস্থাপনে অবহিত করুন" #: tools/editor/code_editor.cpp msgid "Skip" -msgstr "" +msgstr "অতিক্রম করে যান" #: tools/editor/code_editor.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom In" -msgstr "" +msgstr "সম্প্রসারিত করুন (জুম্ ইন)" #: tools/editor/code_editor.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom Out" -msgstr "" +msgstr "সংকুচিত করুন (জুম্ আউট)" #: tools/editor/code_editor.cpp msgid "Reset Zoom" -msgstr "" +msgstr "সম্প্রসারন/সংকোচন অপসারণ করুন (রিসেট জুম্)" #: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp msgid "Line:" -msgstr "" +msgstr "লাইন:" #: tools/editor/code_editor.cpp msgid "Col:" -msgstr "" +msgstr "কলাম:" #: tools/editor/connections_dialog.cpp msgid "Method in target Node must be specified!" -msgstr "" +msgstr "নির্দেশিত নোডের মেথড নির্দিষ্ট করতে হবে!" #: tools/editor/connections_dialog.cpp msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"উদ্দেশ্যিত মেথড পাওয়া যায়নি! উদ্দেশ্যিত নোডে একটি কার্যকর মেথড নির্দিষ্ট করুন অথবা " +"একটি স্ক্রিপ্ট ফাইল সংযুক্ত করুন।" #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" -msgstr "" +msgstr "নোডের সাথে সংযুক্ত করুন:" #: tools/editor/connections_dialog.cpp #: tools/editor/editor_autoload_settings.cpp tools/editor/groups_editor.cpp @@ -1436,144 +1434,148 @@ msgstr "" #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/project_settings.cpp msgid "Add" -msgstr "" +msgstr "সংযোজন করুন" #: tools/editor/connections_dialog.cpp tools/editor/dependency_editor.cpp #: tools/editor/plugins/animation_tree_editor_plugin.cpp #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/project_manager.cpp msgid "Remove" -msgstr "" +msgstr "অপসারণ করুন" #: tools/editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "" +msgstr "ডাকযোগ্য অতিরিক্ত মান/আর্গুমেন্ট সংযুক্ত করুন:" #: tools/editor/connections_dialog.cpp msgid "Extra Call Arguments:" -msgstr "" +msgstr "ডাকযোগ্য অতিরিক্ত মান/আর্গুমেন্ট-সমূহ:" #: tools/editor/connections_dialog.cpp msgid "Path to Node:" -msgstr "" +msgstr "নোডের পথ:" #: tools/editor/connections_dialog.cpp msgid "Make Function" -msgstr "" +msgstr "নির্মাণ ফাংশন" #: tools/editor/connections_dialog.cpp msgid "Deferred" -msgstr "" +msgstr "বিলম্বিত" #: tools/editor/connections_dialog.cpp msgid "Oneshot" -msgstr "" +msgstr "ওয়ান-শট" #: tools/editor/connections_dialog.cpp msgid "Connect" -msgstr "" +msgstr "সংযোগ" #: tools/editor/connections_dialog.cpp msgid "Connect '%s' to '%s'" -msgstr "" +msgstr "'%s' এর সাথে '%s' সংযুক্ত করুন" #: tools/editor/connections_dialog.cpp msgid "Connecting Signal:" -msgstr "" +msgstr "সংযোজক সংকেত/সিগন্যাল:" #: tools/editor/connections_dialog.cpp msgid "Create Subscription" -msgstr "" +msgstr "সদস্যতা/সাবস্ক্রিপশন তৈরি করুন" #: tools/editor/connections_dialog.cpp msgid "Connect.." -msgstr "" +msgstr "সংযোগ.." #: tools/editor/connections_dialog.cpp #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Disconnect" -msgstr "" +msgstr "সংযোগ বিচ্ছিন্ন করুন" #: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp msgid "Signals" -msgstr "" +msgstr "সংকেতসমূহ" #: tools/editor/create_dialog.cpp msgid "Create New" -msgstr "" +msgstr "নতুন তৈরি করুন" #: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp #: tools/editor/filesystem_dock.cpp msgid "Favorites:" -msgstr "" +msgstr "ফেবরিট/প্রিয়-সমূহ:" #: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "Recent:" -msgstr "" +msgstr "সাম্প্রতিক:" #: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/property_selector.cpp tools/editor/quick_open.cpp msgid "Matches:" -msgstr "" +msgstr "মিলসমূহ:" #: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp #: tools/editor/property_selector.cpp tools/editor/script_editor_debugger.cpp msgid "Description:" -msgstr "" +msgstr "বর্ণনা:" #: tools/editor/dependency_editor.cpp msgid "Search Replacement For:" -msgstr "" +msgstr "এর জন্য প্রতিস্থাপকের অনুসন্ধান করুন:" #: tools/editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "" +msgstr "এর জন্য নির্ভরতা-সমূহ:" #: tools/editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" "Changes will not take effect unless reloaded." msgstr "" +"'%s' দৃশ্যটি এই-মুহূর্তে সম্পাদিত হচ্ছে।\n" +"পুনরায়-লোড (রিলোড) না করা পর্যন্ত পরিবর্তন-সমূহ কার্যকর হবে না।" #: tools/editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" "Changes will take effect when reloaded." msgstr "" +"'%s' রিসোর্সটি ব্যবহৃত হচ্ছে।\n" +"পুনরায়-লোড (রিলোড)-এর সময় পরিবর্তনসমূহ কার্যকর হবে।" #: tools/editor/dependency_editor.cpp msgid "Dependencies" -msgstr "" +msgstr "নির্ভরতা-সমূহ" #: tools/editor/dependency_editor.cpp msgid "Resource" -msgstr "" +msgstr "রিসোর্স" #: tools/editor/dependency_editor.cpp tools/editor/editor_autoload_settings.cpp #: tools/editor/project_manager.cpp tools/editor/project_settings.cpp msgid "Path" -msgstr "" +msgstr "পথ" #: tools/editor/dependency_editor.cpp msgid "Dependencies:" -msgstr "" +msgstr "নির্ভরতা-সমূহ:" #: tools/editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "" +msgstr "ত্রুটিপূর্ণ/ভগ্ন-অংশসমূহ ঠিক করুন" #: tools/editor/dependency_editor.cpp msgid "Dependency Editor" -msgstr "" +msgstr "নির্ভরতা-সমূহের এডিটর" #: tools/editor/dependency_editor.cpp msgid "Search Replacement Resource:" -msgstr "" +msgstr "প্রতিস্থাপক রিসোর্স-এর অনুসন্ধান করুন:" #: tools/editor/dependency_editor.cpp msgid "Owners Of:" -msgstr "" +msgstr "স্বত্বাধিকারীসমূহ:" #: tools/editor/dependency_editor.cpp msgid "" @@ -1583,432 +1585,447 @@ msgid "" msgstr "" "যেসব ফাইল অপসারিত হচ্ছে তারা অন্যান্য রিসোর্স ফাইলের কার্যকররুপে কাজ করার জন্য " "দরকারি।\n" -"তবুও তাদের অপসারণ করবেন? (তাদের আর ফেরত পাবেন না/আনডু অসম্ভব)" +"তবুও তাদের অপসারণ করবেন? (অফেরৎযোগ্য)" #: tools/editor/dependency_editor.cpp msgid "Remove selected files from the project? (no undo)" -msgstr "" +msgstr "নির্বাচিত ফাইলসমূহ প্রকল্প হতে অপসারণ করবেন? (অফেরৎযোগ্য)" #: tools/editor/dependency_editor.cpp msgid "Error loading:" -msgstr "" +msgstr "লোডে সমস্যা হয়েছে:" #: tools/editor/dependency_editor.cpp msgid "Scene failed to load due to missing dependencies:" -msgstr "" +msgstr "নির্ভরতা-সমূহের অনুপস্থিতিতে দৃশ্যের লোড ব্যর্থ হয়েছে:" #: tools/editor/dependency_editor.cpp msgid "Open Anyway" -msgstr "" +msgstr "যেকোনো উপায়েই খুলুন" #: tools/editor/dependency_editor.cpp msgid "Which action should be taken?" -msgstr "" +msgstr "কোন সিধান্তটি নেয়া উচিত হবে?" #: tools/editor/dependency_editor.cpp msgid "Fix Dependencies" -msgstr "" +msgstr "নির্ভরতা-সমূহ ঠিক করুন" #: tools/editor/dependency_editor.cpp msgid "Errors loading!" -msgstr "" +msgstr "লোডে একাধিক সমস্যা হয়েছে!" #: tools/editor/dependency_editor.cpp msgid "Permanently delete %d item(s)? (No undo!)" -msgstr "" +msgstr "%d -টি বস্তু(সমূহ) স্থায়ীভাবে মুছে ফেলবেন? (অফেরৎযোগ্য!)" #: tools/editor/dependency_editor.cpp msgid "Owns" -msgstr "" +msgstr "আয়ত্তে" #: tools/editor/dependency_editor.cpp msgid "Resources Without Explicit Ownership:" -msgstr "" +msgstr "স্পষ্ট মালিকানা বিহীন রিসোর্সসমূহ:" #: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp msgid "Orphan Resource Explorer" -msgstr "" +msgstr "মালিকবিহীন রিসোর্সের অনুসন্ধানকারী" #: tools/editor/dependency_editor.cpp msgid "Delete selected files?" -msgstr "" +msgstr "নির্বাচিত ফাইলসমূহ অপসারণ করবেন?" #: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp #: tools/editor/filesystem_dock.cpp #: tools/editor/plugins/item_list_editor_plugin.cpp #: tools/editor/scene_tree_dock.cpp msgid "Delete" -msgstr "" +msgstr "অপসারণ করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name." -msgstr "" +msgstr "অগ্রহনযোগ্য নাম।" #: tools/editor/editor_autoload_settings.cpp msgid "Valid characters:" -msgstr "" +msgstr "গ্রহনযোগ্য অক্ষরসমূহ:" #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name. Must not collide with an existing engine class name." msgstr "" +"অগ্রহনযোগ্য নাম। নামটি অবশ্যই ইঞ্জিনে বিদ্যমান ক্লাসের নামের সাথে পরম্পরবিরোধী হতে " +"পারবে না।" #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name. Must not collide with an existing buit-in type name." msgstr "" +"অগ্রহনযোগ্য নাম। নামটি অবশ্যই বিদ্যমান পূর্বনির্মিত ধরণের নামের সাথে পরম্পরবিরোধী " +"হতে পারবে না।" #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name. Must not collide with an existing global constant name." msgstr "" +"অগ্রহনযোগ্য নাম। নামটি অবশ্যই বিদ্যমান সার্বজনীন ধ্রুবকের নামের সাথে পরম্পরবিরোধী " +"হতে পারবে না।" #: tools/editor/editor_autoload_settings.cpp msgid "Invalid Path." -msgstr "" +msgstr "অকার্যকর পথ।" #: tools/editor/editor_autoload_settings.cpp msgid "File does not exist." -msgstr "" +msgstr "ফাইলটি বিদ্যমান নয়।" #: tools/editor/editor_autoload_settings.cpp msgid "Not in resource path." -msgstr "" +msgstr "রিসোর্সের পথে নয়।" #: tools/editor/editor_autoload_settings.cpp msgid "Add AutoLoad" -msgstr "" +msgstr "AutoLoad সংযুক্ত করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" -msgstr "" +msgstr "'%s' এর AutoLoad ইতিমধ্যেই বিদ্যমান!" #: tools/editor/editor_autoload_settings.cpp msgid "Rename Autoload" -msgstr "" +msgstr "Autoload পুনঃনামকরণ করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Toggle AutoLoad Globals" -msgstr "" +msgstr "AutoLoad এর সার্বজনীন মানসমূহ অদলবদল/টগল করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Move Autoload" -msgstr "" +msgstr "Autoload স্থানান্তর করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Remove Autoload" -msgstr "" +msgstr "Autoload অপসারণ করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Enable" -msgstr "" +msgstr "সক্রিয় করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Rearrange Autoloads" -msgstr "" +msgstr "Autoload সমূহ পুনর্বিন্যস্ত করুন" #: tools/editor/editor_autoload_settings.cpp msgid "Node Name:" -msgstr "" +msgstr "নোডের নাম:" #: tools/editor/editor_autoload_settings.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/plugins/sample_library_editor_plugin.cpp #: tools/editor/project_manager.cpp msgid "Name" -msgstr "" +msgstr "নাম" #: tools/editor/editor_autoload_settings.cpp msgid "Singleton" -msgstr "" +msgstr "একক-বস্তু/সিঙ্গেলটোন" #: tools/editor/editor_autoload_settings.cpp msgid "List:" -msgstr "" +msgstr "তালিকা:" #: tools/editor/editor_data.cpp msgid "Updating Scene" -msgstr "" +msgstr "দৃশ্য হাল নাগাদ হচ্ছে" #: tools/editor/editor_data.cpp msgid "Storing local changes.." -msgstr "" +msgstr "স্থানীয় পরিবর্তন-সমূহ সংরক্ষিত হচ্ছে.." #: tools/editor/editor_data.cpp msgid "Updating scene.." -msgstr "" +msgstr "দৃশ্য হাল নাগাদ হচ্ছে.." #: tools/editor/editor_dir_dialog.cpp msgid "Choose a Directory" -msgstr "" +msgstr "একটি স্থান পছন্দ করুন" #: tools/editor/editor_dir_dialog.cpp msgid "Choose" -msgstr "" +msgstr "পছন্দ করুন" #: tools/editor/editor_file_dialog.cpp msgid "Go Back" -msgstr "" +msgstr "পিছনের দিকে যান" #: tools/editor/editor_file_dialog.cpp msgid "Go Forward" -msgstr "" +msgstr "সামনের দিকে যান" #: tools/editor/editor_file_dialog.cpp msgid "Go Up" -msgstr "" +msgstr "উপরের দিকে যান" #: tools/editor/editor_file_dialog.cpp msgid "Refresh" -msgstr "" +msgstr "রিফ্রেস করুন" #: tools/editor/editor_file_dialog.cpp msgid "Toggle Hidden Files" -msgstr "" +msgstr "অদৃশ্য ফাইলসমূহ অদলবদল/টগল করুন" #: tools/editor/editor_file_dialog.cpp msgid "Toggle Favorite" -msgstr "" +msgstr "ফেবরিট/প্রিয়-সমূহ অদলবদল/টগল করুন" #: tools/editor/editor_file_dialog.cpp msgid "Toggle Mode" -msgstr "" +msgstr "মোড অদলবদল/টগল করুন" #: tools/editor/editor_file_dialog.cpp msgid "Focus Path" -msgstr "" +msgstr "পথের উপর ফোকাস করুন" #: tools/editor/editor_file_dialog.cpp msgid "Move Favorite Up" -msgstr "" +msgstr "ফেবরিট/প্রিয়কে উপরের দিকে তুলুন" #: tools/editor/editor_file_dialog.cpp msgid "Move Favorite Down" -msgstr "" +msgstr "ফেবরিট/প্রিয়কে নিচের দিকে নামান" #: tools/editor/editor_file_dialog.cpp msgid "Preview:" -msgstr "" +msgstr "প্রিভিউ:" #: tools/editor/editor_file_system.cpp msgid "ScanSources" -msgstr "" +msgstr "উৎসসমূহ স্ক্যান করুন" #: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp msgid "Search Help" -msgstr "" +msgstr "সাহায্য অনুসন্ধান করুন" #: tools/editor/editor_help.cpp msgid "Class List:" -msgstr "" +msgstr "ক্লাসের তালিকা:" #: tools/editor/editor_help.cpp msgid "Search Classes" -msgstr "" +msgstr "ক্লাসের অনুসন্ধান করুন" #: tools/editor/editor_help.cpp tools/editor/property_editor.cpp msgid "Class:" -msgstr "" +msgstr "ক্লাস:" #: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp #: tools/editor/script_create_dialog.cpp msgid "Inherits:" -msgstr "" +msgstr "গ্রহণ করে:" #: tools/editor/editor_help.cpp msgid "Inherited by:" -msgstr "" +msgstr "গৃহীত হয়েছে:" #: tools/editor/editor_help.cpp msgid "Brief Description:" -msgstr "" +msgstr "সংক্ষিপ্ত বর্ণনা:" #: tools/editor/editor_help.cpp msgid "Public Methods:" -msgstr "" +msgstr "সর্বজনীন/প্রকাশ্য মেথডসমূহ:" #: tools/editor/editor_help.cpp msgid "GUI Theme Items:" -msgstr "" +msgstr "GUI থিম এর বস্তুসমূহ:" #: tools/editor/editor_help.cpp msgid "Constants:" -msgstr "" +msgstr "ধ্রুবকসমূহ:" + +#: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "সংক্ষিপ্ত বর্ণনা:" #: tools/editor/editor_help.cpp msgid "Method Description:" -msgstr "" +msgstr "মেথডের বর্ণ্না:" #: tools/editor/editor_help.cpp msgid "Search Text" -msgstr "" +msgstr "টেক্সট অনুসন্ধান করুন" #: tools/editor/editor_import_export.cpp msgid "Added:" -msgstr "" +msgstr "সংযোজিত:" #: tools/editor/editor_import_export.cpp msgid "Removed:" -msgstr "" +msgstr "অপসারিত:" #: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp msgid "Error saving atlas:" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলী সংরক্ষণে সমস্যা হয়েছে:" #: tools/editor/editor_import_export.cpp msgid "Could not save atlas subtexture:" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলীর উপ-গঠনবিন্যাস (subtexture) সংরক্ষণ অসমর্থ হয়েছে:" #: tools/editor/editor_import_export.cpp msgid "Storing File:" -msgstr "" +msgstr "সংরক্ষিত ফাইল:" #: tools/editor/editor_import_export.cpp msgid "Packing" -msgstr "" +msgstr "প্যাক/গুচ্ছিত করা" #: tools/editor/editor_import_export.cpp msgid "Exporting for %s" -msgstr "" +msgstr "%s এর জন্য এক্সপোর্ট (export) হচ্ছে" #: tools/editor/editor_import_export.cpp msgid "Setting Up.." -msgstr "" +msgstr "স্থাপিত/বিন্যস্ত হচ্ছে.." #: tools/editor/editor_log.cpp msgid " Output:" -msgstr "" +msgstr " আউটপুট/ফলাফল:" #: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp msgid "Re-Importing" -msgstr "" +msgstr "পুনরায় ইম্পোর্ট হচ্ছে" #: tools/editor/editor_node.cpp msgid "Importing:" -msgstr "" +msgstr "ইম্পোর্ট হচ্ছে:" #: tools/editor/editor_node.cpp msgid "Node From Scene" -msgstr "" +msgstr "দৃশ্য হতে নোড" #: tools/editor/editor_node.cpp #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/resources_dock.cpp msgid "Error saving resource!" -msgstr "" +msgstr "রিসোর্স সংরক্ষণে সমস্যা হয়েছে!" #: tools/editor/editor_node.cpp #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/resources_dock.cpp msgid "Save Resource As.." -msgstr "" +msgstr "রিসোর্স এইরূপে সংরক্ষণ করুন.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." -msgstr "" +msgstr "বুঝলাম.." #: tools/editor/editor_node.cpp msgid "Can't open file for writing:" -msgstr "" +msgstr "লেখার জন্য ফাইলটি খোলায় সমস্যা হয়েছে:" #: tools/editor/editor_node.cpp msgid "Requested file format unknown:" -msgstr "" +msgstr "আবেদনকৃত ফাইল ফরম্যাট/ধরণ অজানা:" #: tools/editor/editor_node.cpp msgid "Error while saving." -msgstr "" +msgstr "সংরক্ষণের সময় সমস্যা হয়েছে।" #: tools/editor/editor_node.cpp msgid "Saving Scene" -msgstr "" +msgstr "দৃশ্য সংরক্ষিত হচ্ছে" #: tools/editor/editor_node.cpp msgid "Analyzing" -msgstr "" +msgstr "বিশ্লেষণ হচ্ছে" #: tools/editor/editor_node.cpp msgid "Creating Thumbnail" -msgstr "" +msgstr "থাম্বনেইল তৈরি হচ্ছে" #: tools/editor/editor_node.cpp msgid "" "Couldn't save scene. Likely dependencies (instances) couldn't be satisfied." msgstr "" +"দৃশ্যটি সংরক্ষণ করা সম্ভব হচ্ছে না। সম্ভবত যেসবের (ইন্সট্যান্স) উপর নির্ভর করছে তাদের " +"সন্তুষ্ট করা সম্ভব হচ্ছে না।" #: tools/editor/editor_node.cpp msgid "Failed to load resource." -msgstr "" +msgstr "রিসোর্স লোড ব্যর্থ হয়েছে।" #: tools/editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" -msgstr "" +msgstr "একত্রিত করার জন্য প্রয়োজনীয় MeshLibrary লোড অসম্ভব হয়েছে!" #: tools/editor/editor_node.cpp msgid "Error saving MeshLibrary!" -msgstr "" +msgstr "MeshLibrary সংরক্ষণে সমস্যা হয়েছে!" #: tools/editor/editor_node.cpp msgid "Can't load TileSet for merging!" -msgstr "" +msgstr "একত্রিত করার জন্য প্রয়োজনীয় TileSet লোড অসম্ভব হয়েছে!" #: tools/editor/editor_node.cpp msgid "Error saving TileSet!" -msgstr "" +msgstr "TileSet সংরক্ষণে সমস্যা হয়েছে!" #: tools/editor/editor_node.cpp msgid "Can't open export templates zip." -msgstr "" +msgstr "এক্সপোর্ট টেমপ্লেটের zip খোলায় সমস্যা হয়েছে।" #: tools/editor/editor_node.cpp msgid "Loading Export Templates" -msgstr "" +msgstr "এক্সপোর্ট টেমপ্লেটসমূহ লোড হচ্ছে" #: tools/editor/editor_node.cpp msgid "Error trying to save layout!" -msgstr "" +msgstr "লেআউট/নকশা সংরক্ষণের চেষ্টায় সমস্যা হয়েছে!" #: tools/editor/editor_node.cpp msgid "Default editor layout overridden." -msgstr "" +msgstr "এডিটরের সাধারণ লেআউট/নকশা পরিবর্তিত হয়েছে।" #: tools/editor/editor_node.cpp msgid "Layout name not found!" -msgstr "" +msgstr "লেআউট/নকশার নাম পাওয়া যায়নি!" #: tools/editor/editor_node.cpp msgid "Restored default layout to base settings." -msgstr "" +msgstr "সাধারণ লেআউট/নকশা আদি সেটিংসে প্রত্যাবর্তিত হয়েছে।" #: tools/editor/editor_node.cpp msgid "Copy Params" -msgstr "" +msgstr "মানসমূহ প্রতিলিপি/কপি করুন" #: tools/editor/editor_node.cpp msgid "Paste Params" -msgstr "" +msgstr "মানসমূহ প্রতিলেপন/পেস্ট করুন" #: tools/editor/editor_node.cpp #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "Paste Resource" -msgstr "" +msgstr "রিসোর্স প্রতিলেপন/পেস্ট করুন" #: tools/editor/editor_node.cpp msgid "Copy Resource" -msgstr "" +msgstr "রিসোর্স প্রতিলিপি/কপি করুন" #: tools/editor/editor_node.cpp msgid "Make Built-In" -msgstr "" +msgstr "পূর্বনির্মাণ হিসেবে তৈরি করুন" #: tools/editor/editor_node.cpp msgid "Make Sub-Resources Unique" -msgstr "" +msgstr "উপ-রিসোর্সকে অনন্য হিসেবে তৈরি করুন" #: tools/editor/editor_node.cpp msgid "Open in Help" -msgstr "" +msgstr "সাহায্যের পাতায় খুলুন" #: tools/editor/editor_node.cpp msgid "There is no defined scene to run." -msgstr "" +msgstr "চালানোর জন্য কোনো দৃশ্য নির্দিষ্ট করা নেই।" #: tools/editor/editor_node.cpp msgid "" @@ -2016,6 +2033,9 @@ msgid "" "You can change it later in later in \"Project Settings\" under the " "'application' category." msgstr "" +"কোনো মুখ্য দৃশ্য নির্ধারণ করা হয়নি, নির্ধারণ করবেন?\n" +"আপনি পরবর্তিতে তা 'অ্যাপ্লিকেশন (application)' বিভাগের \\\"প্রকল্পের সেটিংস " +"(Project Settings)\\\"-এ পরিবর্তন করতে পারবেন।" #: tools/editor/editor_node.cpp msgid "" @@ -2023,6 +2043,9 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"নির্বাচিত '%s' দৃশ্যটি বিদ্যমান নয়, একটি কার্যকর দৃশ্য নির্ধারণ করবেন?\n" +"আপনি পরবর্তিতে তা 'অ্যাপ্লিকেশন (application)' বিভাগের \\\"প্রকল্পের সেটিংস " +"(Project Settings)\\\"-এ পরিবর্তন করতে পারবেন।" #: tools/editor/editor_node.cpp msgid "" @@ -2030,244 +2053,255 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"নির্বাচিত '%s' দৃশ্যটি কোনো দৃশ্যের ফাইল নয়, একটি কার্যকর দৃশ্যের ফাইল নির্ধারণ " +"করবেন?\n" +"আপনি পরবর্তিতে তা 'অ্যাপ্লিকেশন (application)' বিভাগের \\\"প্রকল্পের সেটিংস " +"(Project Settings)\\\"-এ পরিবর্তন করতে পারবেন।" #: tools/editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" +"বর্তমান দৃশ্যটি কখনোই সংরক্ষণ করা হয় নি, অনুগ্রহ করে চালানোর পূর্বে এটি সংরক্ষণ করুন।" #: tools/editor/editor_node.cpp msgid "Could not start subprocess!" -msgstr "" +msgstr "উপ-প্রক্রিয়াকে শুরু করা সম্ভব হয়নি!" #: tools/editor/editor_node.cpp msgid "Open Scene" -msgstr "" +msgstr "দৃশ্য খুলুন" #: tools/editor/editor_node.cpp msgid "Open Base Scene" -msgstr "" +msgstr "গোড়ার দৃশ্য খুলুন" #: tools/editor/editor_node.cpp msgid "Quick Open Scene.." -msgstr "" +msgstr "দ্রুত দৃশ্য খুলুন.." #: tools/editor/editor_node.cpp msgid "Quick Open Script.." -msgstr "" +msgstr "দ্রুত স্ক্রিপ্ট খুলুন.." #: tools/editor/editor_node.cpp msgid "Yes" -msgstr "" +msgstr "হ্যাঁ" #: tools/editor/editor_node.cpp msgid "Close scene? (Unsaved changes will be lost)" -msgstr "" +msgstr "দৃশ্য বন্ধ করবেন? (অসংরক্ষিত পরিবর্তনসমূহ হারিয়ে যাবে)" #: tools/editor/editor_node.cpp msgid "Save Scene As.." -msgstr "" +msgstr "দৃশ্য এইরূপে সংরক্ষণ করুন.." #: tools/editor/editor_node.cpp msgid "This scene has never been saved. Save before running?" -msgstr "" +msgstr "এই দৃশ্যটি কখনোই সংরক্ষণ করা হয় নি। চালানোর পূর্বে সংরক্ষণ করবেন?" #: tools/editor/editor_node.cpp msgid "Please save the scene first." -msgstr "" +msgstr "প্রথমে অনুগ্রহ করে দৃশ্যটি সংরক্ষণ করুন।" #: tools/editor/editor_node.cpp msgid "Save Translatable Strings" -msgstr "" +msgstr "অনুবাদ-সম্ভব শব্দমালা/বাক্য-সমূহ সংরক্ষণ করুন" #: tools/editor/editor_node.cpp msgid "Export Mesh Library" -msgstr "" +msgstr "Mesh Library এক্সপোর্ট করুন" #: tools/editor/editor_node.cpp msgid "Export Tile Set" -msgstr "" +msgstr "Tile Set এক্সপোর্ট করুন" #: tools/editor/editor_node.cpp msgid "Quit" -msgstr "" +msgstr "প্রস্থান করুন" #: tools/editor/editor_node.cpp msgid "Exit the editor?" -msgstr "" +msgstr "এডিটর হতে প্রস্থান করবেন?" #: tools/editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "" +msgstr "বর্তমান দৃশ্যটি সংরক্ষিত হয়নি। তবুও খুলবেন?" #: tools/editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "" +msgstr "পূর্বে কখনোই সংরক্ষিত হয়নি এমন দৃশ্য পুনরায়-লোড (রিলোড) করা অসম্ভব।" #: tools/editor/editor_node.cpp msgid "Revert" -msgstr "" +msgstr "প্রত্যাবর্তন করুন" #: tools/editor/editor_node.cpp msgid "This action cannot be undone. Revert anyway?" -msgstr "" +msgstr "এই কাজটি অসম্পাদিত করা সম্ভব হবে না। তবুও প্রত্যাবর্তন করবেন?" #: tools/editor/editor_node.cpp msgid "Quick Run Scene.." -msgstr "" +msgstr "দ্রুত দৃশ্য চালান.." #: tools/editor/editor_node.cpp msgid "" "Open Project Manager? \n" "(Unsaved changes will be lost)" msgstr "" +"প্রকল্প ম্যানেজার (Project Manager) খুলবেন? \n" +"(অ-সংরক্ষিত পরিবর্তন-সমূহ হারিয়ে যাবে)" #: tools/editor/editor_node.cpp msgid "Pick a Main Scene" -msgstr "" +msgstr "একটি মুখ্য দৃশ্য মনোনীত করুন" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" -msgstr "" +msgstr "আহ্" #: tools/editor/editor_node.cpp msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." msgstr "" +"দৃশ্য লোডে সমস্যা হয়েছে, দৃশ্যটি অবশ্যই প্রকল্পের পথের ভিতরে হতে হবে। 'ইম্পোর্ট " +"(Import)' ব্যবহার করে দৃশ্যটি খুলুন, তারপর তা প্রকল্পের পথের ভিতরে সংরক্ষণ করুন।" #: tools/editor/editor_node.cpp msgid "Error loading scene." -msgstr "" +msgstr "দৃশ্য লোডে সমস্যা হয়েছে।" #: tools/editor/editor_node.cpp msgid "Scene '%s' has broken dependencies:" -msgstr "" +msgstr "'%s' দৃশ্যটির অসংলগ্ন নির্ভরতা রয়েছে:" #: tools/editor/editor_node.cpp msgid "Save Layout" -msgstr "" +msgstr "লেআউট/নকশা সংরক্ষণ করুন" #: tools/editor/editor_node.cpp msgid "Delete Layout" -msgstr "" +msgstr "লেআউট/নকশা অপসারণ করুন" #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Default" -msgstr "" +msgstr "সাধারণ/ডিফল্ট" #: tools/editor/editor_node.cpp msgid "Switch Scene Tab" -msgstr "" +msgstr "দৃশ্যের ট্যাব পরিবর্তন করুন" #: tools/editor/editor_node.cpp msgid "%d more file(s)" -msgstr "" +msgstr "%d টি অধিক ফাইল(সমূহ)" #: tools/editor/editor_node.cpp msgid "%d more file(s) or folder(s)" -msgstr "" +msgstr "%d টি অধিক ফাইল(সমূহ) বা ফোল্ডার(সমূহ)" #: tools/editor/editor_node.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Scene" -msgstr "" +msgstr "দৃশ্য" #: tools/editor/editor_node.cpp msgid "Go to previously opened scene." -msgstr "" +msgstr "পূর্বে খোলা দৃশ্যে যান।" #: tools/editor/editor_node.cpp msgid "Next tab" -msgstr "" +msgstr "পরের ট্যাব" #: tools/editor/editor_node.cpp msgid "Previous tab" -msgstr "" +msgstr "পূর্বের ট্যাব" #: tools/editor/editor_node.cpp msgid "Operations with scene files." -msgstr "" +msgstr "দৃশ্যের ফাইলের সাথে কার্যকলাপসমূহ।" #: tools/editor/editor_node.cpp msgid "New Scene" -msgstr "" +msgstr "নতুন দৃশ্য" #: tools/editor/editor_node.cpp msgid "New Inherited Scene.." -msgstr "" +msgstr "নতুন উত্তরাধিকারী দৃশ্য.." #: tools/editor/editor_node.cpp msgid "Open Scene.." -msgstr "" +msgstr "দৃশ্য খুলুন.." #: tools/editor/editor_node.cpp msgid "Save Scene" -msgstr "" +msgstr "দৃশ্য সংরক্ষণ করুন" #: tools/editor/editor_node.cpp msgid "Save all Scenes" -msgstr "" +msgstr "সকল দৃশ্য সংরক্ষণ করুন" #: tools/editor/editor_node.cpp msgid "Close Scene" -msgstr "" +msgstr "দৃশ্য বন্ধ করুন" #: tools/editor/editor_node.cpp msgid "Close Goto Prev. Scene" -msgstr "" +msgstr "বন্ধ করে পূর্বের দৃশ্যে যান" #: tools/editor/editor_node.cpp msgid "Open Recent" -msgstr "" +msgstr "সাম্প্রতিকসমূহ খুলুন" #: tools/editor/editor_node.cpp msgid "Quick Filter Files.." -msgstr "" +msgstr "দ্রুত ফাইলসমূহ ফিল্টার করুন.." #: tools/editor/editor_node.cpp msgid "Convert To.." -msgstr "" +msgstr "এতে রূপান্তর করুন.." #: tools/editor/editor_node.cpp msgid "Translatable Strings.." -msgstr "" +msgstr "অনুবাদ-সম্ভব শব্দমালা/বাক্য-সমূহ.." #: tools/editor/editor_node.cpp msgid "MeshLibrary.." -msgstr "" +msgstr "MeshLibrary (মেস-লাইব্রেরি).." #: tools/editor/editor_node.cpp msgid "TileSet.." -msgstr "" +msgstr "TileSet (টাইল-সেট).." #: tools/editor/editor_node.cpp tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Redo" -msgstr "" +msgstr "পুনরায় করুন" #: tools/editor/editor_node.cpp msgid "Run Script" -msgstr "" +msgstr "স্ক্রিপ্ট চালান" #: tools/editor/editor_node.cpp msgid "Project Settings" -msgstr "" +msgstr "প্রকল্পের সেটিংস" #: tools/editor/editor_node.cpp msgid "Revert Scene" -msgstr "" +msgstr "দৃশ্য প্রত্যাবৃত্ত করুন" #: tools/editor/editor_node.cpp msgid "Quit to Project List" -msgstr "" +msgstr "প্রকল্পের তালিকায় প্রস্থান করুন" #: tools/editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "" +msgstr "বিক্ষেপ-হীন মোড" #: tools/editor/editor_node.cpp msgid "Import assets to the project." -msgstr "" +msgstr "উপাদানসমূহ প্রকল্পে ইম্পোর্ট করুন।" #: tools/editor/editor_node.cpp #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp @@ -2279,83 +2313,85 @@ msgstr "" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp #: tools/editor/project_manager.cpp msgid "Import" -msgstr "" +msgstr "ইম্পোর্ট" #: tools/editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." -msgstr "" +msgstr "প্রকল্প অথবা দৃশ্যে-ব্যাপী বিবিধ সরঞ্জাম-সমূহ।" #: tools/editor/editor_node.cpp msgid "Tools" -msgstr "" +msgstr "সরঞ্জাম-সমূহ" #: tools/editor/editor_node.cpp msgid "Export the project to many platforms." -msgstr "" +msgstr "প্রকল্পটি একাধিক প্লাটফর্মে এক্সপোর্ট করুন।" #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Export" -msgstr "" +msgstr "এক্সপোর্ট" #: tools/editor/editor_node.cpp msgid "Play the project." -msgstr "" +msgstr "প্রকল্পটি চালান।" #: tools/editor/editor_node.cpp #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Play" -msgstr "" +msgstr "চালান" #: tools/editor/editor_node.cpp msgid "Pause the scene" -msgstr "" +msgstr "দৃশ্যটিকে বিরতি দিন" #: tools/editor/editor_node.cpp msgid "Pause Scene" -msgstr "" +msgstr "দৃশ্যকে বিরতি দিন" #: tools/editor/editor_node.cpp msgid "Stop the scene." -msgstr "" +msgstr "দৃশ্যটিকে থামান।" #: tools/editor/editor_node.cpp #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Stop" -msgstr "" +msgstr "থামান" #: tools/editor/editor_node.cpp msgid "Play the edited scene." -msgstr "" +msgstr "সম্পাদিত দৃশ্যটি চালান।" #: tools/editor/editor_node.cpp msgid "Play Scene" -msgstr "" +msgstr "দৃশ্য চালান" #: tools/editor/editor_node.cpp msgid "Play custom scene" -msgstr "" +msgstr "স্বনির্বাচিত দৃশ্য চালান" #: tools/editor/editor_node.cpp msgid "Play Custom Scene" -msgstr "" +msgstr "স্বনির্বাচিত দৃশ্য চালান" #: tools/editor/editor_node.cpp msgid "Debug options" -msgstr "" +msgstr "ডিবাগের সিদ্ধান্তসমূহ" #: tools/editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "" +msgstr "দূরবর্তী ডিবাগের সহিত ডিপ্লয় করুন" #: tools/editor/editor_node.cpp msgid "" "When exporting or deploying, the resulting executable will attempt to " "connect to the IP of this computer in order to be debugged." msgstr "" +"এক্সপোর্ট (Export) বা ডিপ্লয় (Deploy)-এর সময় প্রস্তুতকৃত এক্সিকিউটেবল (executable) " +"ডিবাগ (debug)-এর উদ্দেশ্যে এই কম্পিউটারের আইপি (IP)-তে সংযোগ করার চেষ্টা করবে।" #: tools/editor/editor_node.cpp msgid "Small Deploy with Network FS" -msgstr "" +msgstr "নেটওয়ার্ক ফাইল-সিস্টেমের সহিত ক্ষুদ্র-ডিপ্লয় করুন" #: tools/editor/editor_node.cpp msgid "" @@ -2366,30 +2402,40 @@ msgid "" "On Android, deploy will use the USB cable for faster performance. This " "option speeds up testing for games with a large footprint." msgstr "" +"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে, এক্সপোর্ট (Export) বা ডিপ্লয় (Deploy)-এ স্বল্পতম " +"মানের এক্সিকিউটেবল (executable) উৎপাদন হবে।\n" +"ফাইল-সিস্টেম (filesystem) প্রকল্প হতে এডিটর (editor) দিয়ে নেটওয়ার্ক-এর মাধ্যমে " +"যোগান দেয়া হবে।\n" +"অ্যান্ড্রয়েড ডিপ্লয়ে (deploy) দ্রুততর কর্মক্ষমতার জন্য ইউএসবি (USB) ক্যাবল ব্যবহৃত হবে। " +"এই সিদ্ধান্তটি (অপশন) বৃহৎ মানের গেমের পরীক্ষা দ্রুততর করে তুলে।" #: tools/editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "" +msgstr "দৃশ্যমান সাংঘর্ষিক আকারসমূহ (Collision Shapes)" #: tools/editor/editor_node.cpp msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." msgstr "" +"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে চলমান গেমে কলিশ়ন (Collision) আকৃতি এবং রে-কাস্ট " +"(RayCast) নোড (2D এবং 3D) দৃশ্যমান হবে।" #: tools/editor/editor_node.cpp msgid "Visible Navigation" -msgstr "" +msgstr "দৃশ্যমান নেভিগেশন (Navigation)" #: tools/editor/editor_node.cpp msgid "" "Navigation meshes and polygons will be visible on the running game if this " "option is turned on." msgstr "" +"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে চলমান গেমে ন্যাভিগেশন (Navigation) মেস এবং " +"পলিগন-সমূহ দৃশ্যমান হবে।" #: tools/editor/editor_node.cpp msgid "Sync Scene Changes" -msgstr "" +msgstr "দৃশ্যের পরিবর্তনসমূহ সুসংগত/সমন্বয় করুন" #: tools/editor/editor_node.cpp msgid "" @@ -2398,10 +2444,14 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"এই সিদ্ধান্তটি (অপশন) সক্রিয় থাকলে, এডিটরে কোনো দৃশ্যের পরিবর্তন করলে তা চলমান " +"গেমে প্রতিফলিত হবে।\n" +"রিমোট ডিভাইসে ব্যবহারের সময়, নেটওয়ার্ক ফাইল-সিস্টেম (filesystem) এটিকে আরো " +"কার্যকর করবে।" #: tools/editor/editor_node.cpp msgid "Sync Script Changes" -msgstr "" +msgstr "স্ক্রিপ্টের পরিবর্তনসমূহ সুসংগত/সমন্বয় করুন" #: tools/editor/editor_node.cpp msgid "" @@ -2410,278 +2460,284 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"এই সিদ্ধান্তটি (অপশন) সক্রিয় থাকলে, কোনো স্ক্রিপ্টের পরিবর্তন সংরক্ষণে তা চলমান গেমে " +"প্রতিফলিত হবে।\n" +"রিমোট ডিভাইসে ব্যবহারের সময়, নেটওয়ার্ক ফাইল-সিস্টেম (filesystem) এটিকে আরো " +"কার্যকর করবে।" #: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp msgid "Settings" -msgstr "" +msgstr "সেটিংস" #: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp msgid "Editor Settings" -msgstr "" +msgstr "এডিটরের সেটিংস" #: tools/editor/editor_node.cpp msgid "Editor Layout" -msgstr "" +msgstr "এডিটরের লেআউট/নকশা" #: tools/editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "" +msgstr "পূর্ণ-পর্দা অদলবদল/টগল করুন" #: tools/editor/editor_node.cpp msgid "Install Export Templates" -msgstr "" +msgstr "এক্সপোর্টের টেমপ্লেটসমূহ ইন্সটল করুন" #: tools/editor/editor_node.cpp msgid "About" -msgstr "" +msgstr "সম্বন্ধে/সম্পর্কে" #: tools/editor/editor_node.cpp msgid "Alerts when an external resource has changed." -msgstr "" +msgstr "বহি:স্থ রিসোর্সের পরিবর্তনে সতর্ক করে।" #: tools/editor/editor_node.cpp msgid "Spins when the editor window repaints!" -msgstr "" +msgstr "এডিটরের পুন-অঙ্কনে এটি ঘূর্ণন করে!" #: tools/editor/editor_node.cpp msgid "Update Always" -msgstr "" +msgstr "সর্বদা হাল-নাগাদ করুন" #: tools/editor/editor_node.cpp msgid "Update Changes" -msgstr "" +msgstr "পরিবর্তনসমূহ হাল-নাগাদ করুন" #: tools/editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "হাল-নাগাদকারী ঘূর্ণক নিষ্ক্রিয় করুন" #: tools/editor/editor_node.cpp msgid "Inspector" -msgstr "" +msgstr "পরিদর্শক/পরীক্ষক" #: tools/editor/editor_node.cpp msgid "Create a new resource in memory and edit it." -msgstr "" +msgstr "মেমোরিতে নতুন একটি রিসোর্স তৈরি করুন এবং সম্পাদন করুন।" #: tools/editor/editor_node.cpp msgid "Load an existing resource from disk and edit it." -msgstr "" +msgstr "ডিস্ক হতে একটি বিদ্যমান রিসোর্স লোড করুন এবং সম্পাদন করুন।" #: tools/editor/editor_node.cpp msgid "Save the currently edited resource." -msgstr "" +msgstr "এই-মুহূর্তে সম্পাদিত রিসোর্সটি সংরক্ষণ করুন।" #: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp msgid "Save As.." -msgstr "" +msgstr "এইরূপে সংরক্ষণ করুন.." #: tools/editor/editor_node.cpp msgid "Go to the previous edited object in history." -msgstr "" +msgstr "স্মৃতিতে অবস্থিত পূর্বে সম্পাদিত বস্তুতে যান।" #: tools/editor/editor_node.cpp msgid "Go to the next edited object in history." -msgstr "" +msgstr "স্মৃতিতে অবস্থিত পরবর্তিতে সম্পাদিত বস্তুতে যান।" #: tools/editor/editor_node.cpp msgid "History of recently edited objects." -msgstr "" +msgstr "সাম্প্রতিক সময়ে সম্পাদিত বস্তুর স্মৃতি।" #: tools/editor/editor_node.cpp msgid "Object properties." -msgstr "" +msgstr "বস্তুর বৈশিষ্ট্যসমূহ।" #: tools/editor/editor_node.cpp msgid "FileSystem" -msgstr "" +msgstr "ফাইলসিস্টেম" #: tools/editor/editor_node.cpp tools/editor/node_dock.cpp msgid "Node" -msgstr "" +msgstr "নোড" #: tools/editor/editor_node.cpp msgid "Output" -msgstr "" +msgstr "আউটপুট/ফলাফল" #: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp msgid "Re-Import" -msgstr "" +msgstr "পুন-ইম্পোর্ট" #: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp msgid "Update" -msgstr "" +msgstr "হালনাগাদ" #: tools/editor/editor_node.cpp msgid "Thanks from the Godot community!" -msgstr "" +msgstr "Godot কমিউনিটি হতে আপনাকে ধন্যবাদ!" #: tools/editor/editor_node.cpp msgid "Thanks!" -msgstr "" +msgstr "ধন্যবাদ!" #: tools/editor/editor_node.cpp msgid "Import Templates From ZIP File" -msgstr "" +msgstr "ZIP ফাইল হতে টেমপ্লেট-সমূহ ইম্পোর্ট করুন" #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Export Project" -msgstr "" +msgstr "প্রকল্প এক্সপোর্ট করুন" #: tools/editor/editor_node.cpp msgid "Export Library" -msgstr "" +msgstr "লাইব্রেরি এক্সপোর্ট করুন" #: tools/editor/editor_node.cpp msgid "Merge With Existing" -msgstr "" +msgstr "বিদ্যমানের সাথে একত্রিত করুন" #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Password:" -msgstr "" +msgstr "পাসওয়ার্ড:" #: tools/editor/editor_node.cpp msgid "Open & Run a Script" -msgstr "" +msgstr "একটি স্ক্রিপ্ট খুলুন এবং চালান" #: tools/editor/editor_node.cpp msgid "Load Errors" -msgstr "" +msgstr "ভুল/সমস্যা-সমূহ লোড করুন" #: tools/editor/editor_plugin_settings.cpp msgid "Installed Plugins:" -msgstr "" +msgstr "ইন্সটল-কৃত প্লাগইন-সমূহ:" #: tools/editor/editor_plugin_settings.cpp msgid "Version:" -msgstr "" +msgstr "সংস্করণ:" #: tools/editor/editor_plugin_settings.cpp msgid "Author:" -msgstr "" +msgstr "লেখক:" #: tools/editor/editor_plugin_settings.cpp msgid "Status:" -msgstr "" +msgstr "অবস্থা:" #: tools/editor/editor_profiler.cpp msgid "Stop Profiling" -msgstr "" +msgstr "প্রোফাইলিং বন্ধ করুন" #: tools/editor/editor_profiler.cpp msgid "Start Profiling" -msgstr "" +msgstr "প্রোফাইলিং শুরু করুন" #: tools/editor/editor_profiler.cpp msgid "Measure:" -msgstr "" +msgstr "মাপ:" #: tools/editor/editor_profiler.cpp msgid "Frame Time (sec)" -msgstr "" +msgstr "ফ্রেম-এর সময় (সেঃ)" #: tools/editor/editor_profiler.cpp msgid "Average Time (sec)" -msgstr "" +msgstr "গড় সময় (সেঃ)" #: tools/editor/editor_profiler.cpp msgid "Frame %" -msgstr "" +msgstr "ফ্রেম %" #: tools/editor/editor_profiler.cpp msgid "Fixed Frame %" -msgstr "" +msgstr "স্থির/বদ্ধ ফ্রেম %" #: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp msgid "Time:" -msgstr "" +msgstr "সময়:" #: tools/editor/editor_profiler.cpp msgid "Inclusive" -msgstr "" +msgstr "অন্তর্ভুক্ত" #: tools/editor/editor_profiler.cpp msgid "Self" -msgstr "" +msgstr "স্বীয়" #: tools/editor/editor_profiler.cpp msgid "Frame #:" -msgstr "" +msgstr "ফ্রেম #:" #: tools/editor/editor_reimport_dialog.cpp msgid "Please wait for scan to complete." -msgstr "" +msgstr "স্ক্যান সম্পন্ন হওয়া পর্যন্ত অনুগ্রহ করে অপেক্ষা করুন।" #: tools/editor/editor_reimport_dialog.cpp msgid "Current scene must be saved to re-import." -msgstr "" +msgstr "পুনরায়-ইম্পোর্ট করতে বর্তমান দৃশ্যটিকে অবশ্যই সংরক্ষণ করতে হবে।" #: tools/editor/editor_reimport_dialog.cpp msgid "Save & Re-Import" -msgstr "" +msgstr "সংরক্ষণ এবং পুন-ইম্পোর্ট করুন" #: tools/editor/editor_reimport_dialog.cpp msgid "Re-Import Changed Resources" -msgstr "" +msgstr "পুন-ইম্পোর্টে রিসোর্স-সমূহ পরিবর্তিত হয়েছে" #: tools/editor/editor_run_script.cpp msgid "Write your logic in the _run() method." -msgstr "" +msgstr "আপনার লজিক/যুক্তি-সমূহ _run() মেথডে লিখুন।" #: tools/editor/editor_run_script.cpp msgid "There is an edited scene already." -msgstr "" +msgstr "এখানে ইতিমধ্যেই একটি সম্পাদিত দৃশ্য রয়েছে।" #: tools/editor/editor_run_script.cpp msgid "Couldn't instance script:" -msgstr "" +msgstr "স্ক্রিপ্ট ইনস্ট্যান্স করা সম্ভব হয়নি:" #: tools/editor/editor_run_script.cpp msgid "Did you forget the 'tool' keyword?" -msgstr "" +msgstr "আপনি কি 'tool' কীওয়ার্ড/শব্দটি দিতে ভুলেছেন?" #: tools/editor/editor_run_script.cpp msgid "Couldn't run script:" -msgstr "" +msgstr "স্ক্রিপ্ট চালানো সম্ভব হয়নি:" #: tools/editor/editor_run_script.cpp msgid "Did you forget the '_run' method?" -msgstr "" +msgstr "আপনি কি '_run' মেথডটি দিতে ভুলেছেন?" #: tools/editor/editor_settings.cpp msgid "Default (Same as Editor)" -msgstr "" +msgstr "ডিফল্ট/সাধারণ (এডিটরের মতোই)" #: tools/editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" -msgstr "" +msgstr "ইম্পোর্টের জন্য নোড(সমূহ) নির্বাচন করুন" #: tools/editor/editor_sub_scene.cpp msgid "Scene Path:" -msgstr "" +msgstr "দৃশ্যের পথ:" #: tools/editor/editor_sub_scene.cpp msgid "Import From Node:" -msgstr "" +msgstr "নোড হতে ইম্পোর্ট করুন:" #: tools/editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" +"লেখার জন্য file_type_cache.cch খোলা সম্ভব হচ্ছে না, ফাইলের ধরণ ক্যাশ (cache) " +"সংরক্ষিত হচ্ছে না!" #: tools/editor/filesystem_dock.cpp msgid "Same source and destination files, doing nothing." -msgstr "" +msgstr "ফাইল্গুলোর একই উৎস এবং গন্তব্যস্থান, কিছুই করা হচ্ছে না।" #: tools/editor/filesystem_dock.cpp msgid "Same source and destination paths, doing nothing." -msgstr "" +msgstr "পথগুলোর একই উৎস এবং গন্তব্যস্থান, কিছুই করা হচ্ছে না।" #: tools/editor/filesystem_dock.cpp msgid "Can't move directories to within themselves." -msgstr "" +msgstr "স্থানসমূহকে তাদের মাঝেই স্থানান্তর করা সম্ভব নয়।" #: tools/editor/filesystem_dock.cpp msgid "Can't operate on '..'" -msgstr "" +msgstr "'..' তে পরিচালনা করা সম্ভব নয়" #: tools/editor/filesystem_dock.cpp msgid "Pick New Name and Location For:" @@ -2693,111 +2749,111 @@ msgstr "কোনো ফাইল নির্বাচিত হয়নি!" #: tools/editor/filesystem_dock.cpp msgid "Instance" -msgstr "" +msgstr "ইনস্ট্যান্স" #: tools/editor/filesystem_dock.cpp msgid "Edit Dependencies.." -msgstr "" +msgstr "নির্ভরতাসমূহ সম্পাদন করুন.." #: tools/editor/filesystem_dock.cpp msgid "View Owners.." -msgstr "" +msgstr "স্বত্বাধিকারীদের দেখুন.." #: tools/editor/filesystem_dock.cpp msgid "Copy Path" -msgstr "" +msgstr "পথ প্রতিলিপি/কপি করুন" #: tools/editor/filesystem_dock.cpp msgid "Rename or Move.." -msgstr "" +msgstr "পুনঃনামকরণ করুন অথবা সরান.." #: tools/editor/filesystem_dock.cpp msgid "Move To.." -msgstr "" +msgstr "এখানে সরান.." #: tools/editor/filesystem_dock.cpp msgid "Info" -msgstr "" +msgstr "তথ্য" #: tools/editor/filesystem_dock.cpp msgid "Show In File Manager" -msgstr "" +msgstr "ফাইল-ম্যানেজারে দেখুন" #: tools/editor/filesystem_dock.cpp msgid "Re-Import.." -msgstr "" +msgstr "পুন-ইম্পোর্ট.." #: tools/editor/filesystem_dock.cpp msgid "Previous Directory" -msgstr "" +msgstr "পূর্বের স্থান" #: tools/editor/filesystem_dock.cpp msgid "Next Directory" -msgstr "" +msgstr "পরের স্থান" #: tools/editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" -msgstr "" +msgstr "ফাইলসিস্টেম পুন-স্ক্যান করুন" #: tools/editor/filesystem_dock.cpp msgid "Toggle folder status as Favorite" -msgstr "" +msgstr "ফোল্ডারের অবস্থা ফেবরিট/প্রিয় হিসেবে অদলবদল/টগল করুন" #: tools/editor/filesystem_dock.cpp msgid "Instance the selected scene(s) as child of the selected node." -msgstr "" +msgstr "নির্বাচিত দৃশ্য(সমূহ)-কে নির্বাচিত নোডের অংশ হিসেবে ইনস্ট্যান্স করুন।" #: tools/editor/filesystem_dock.cpp msgid "Move" -msgstr "" +msgstr "সরান" #: tools/editor/groups_editor.cpp msgid "Add to Group" -msgstr "" +msgstr "গ্রুপ/দলে যোগ করুন" #: tools/editor/groups_editor.cpp msgid "Remove from Group" -msgstr "" +msgstr "গ্রুপ/দল হতে অপসারণ করুন" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp msgid "No bit masks to import!" -msgstr "" +msgstr "ইম্পোর্ট করার জন্য কোনো বিট মাস্ক নেই!" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Target path is empty." -msgstr "" +msgstr "উদ্দেশ্যিত পথটি খালি।" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Target path must be a complete resource path." -msgstr "" +msgstr "উদ্দেশ্যিত পথটি অবশ্যই একটি সম্পুর্ণ রিসোর্স পথ হতে হবে।" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Target path must exist." -msgstr "" +msgstr "উদ্দেশ্যিত পথটি অবশ্যই বিদ্যমান হতে হবে।" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Save path is empty!" -msgstr "" +msgstr "সংরক্ষণের পথটি খালি!" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp msgid "Import BitMasks" -msgstr "" +msgstr "BitMasks ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Source Texture(s):" -msgstr "" +msgstr "টেক্সার(সমূহ)-এর উৎস:" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp @@ -2805,8 +2861,9 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" -msgstr "" +msgstr "উদ্দেশ্যিত পথ:" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp @@ -2815,676 +2872,688 @@ msgstr "" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Accept" -msgstr "" +msgstr "গ্রহণ করুন" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp msgid "Bit Mask" -msgstr "" +msgstr "বিট-মাস্ক (Bit Mask)" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "No source font file!" -msgstr "" +msgstr "ফন্টের কোনো উৎস ফাইল নেই!" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "No target font resource!" -msgstr "" +msgstr "ফন্টের কোনো উদ্দেশ্যিত রিসোর্স নেই!" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "" "Invalid file extension.\n" "Please use .fnt." msgstr "" +"ফাইলের অগ্রহনযোগ্য এক্সটেনশন।\n" +"অনুগ্রহ করে .fnt ব্যবহার করুন।" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Can't load/process source font." -msgstr "" +msgstr "ফন্টের উৎস লোড/প্রসেস করা সম্ভব হচ্ছে না।" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Couldn't save font." -msgstr "" +msgstr "ফন্ট সংরক্ষণ করা সম্ভব হয়নি।" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Source Font:" -msgstr "" +msgstr "ফন্টের উৎস:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Source Font Size:" -msgstr "" +msgstr "উৎস ফন্টের আকার:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Dest Resource:" -msgstr "" +msgstr "রিসোর্সের গন্তব্যস্থান:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "The quick brown fox jumps over the lazy dog." msgstr "" +"বাদামী রঙ্গের দ্রুত শিয়ালটি অলস কুকুরের উপর দিয়ে লাফিয়ে যায় (The quick brown fox " +"jumps over the lazy dog.)।" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Test:" -msgstr "" +msgstr "পরীক্ষা:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Options:" -msgstr "" +msgstr "সিদ্ধান্তসমূহ (অপশন):" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Font Import" -msgstr "" +msgstr "ফন্ট ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "" "This file is already a Godot font file, please supply a BMFont type file " "instead." msgstr "" +"এই ফাইলটি ইতিমধ্যেই একটি Godot ফন্ট ফাইল, পরিবর্তে অনুগ্রহ করে BMFont ধরণের ফাইল " +"প্রদান করুন।" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Failed opening as BMFont file." -msgstr "" +msgstr "BMFont ফাইল খোলা ব্যর্থ হয়েছে।" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Invalid font custom source." -msgstr "" +msgstr "স্বনির্মিত ফন্টের অগ্রহনযোগ্য উৎস।" #: tools/editor/io_plugins/editor_font_import_plugin.cpp #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Font" -msgstr "" +msgstr "ফন্ট" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "No meshes to import!" -msgstr "" +msgstr "ইম্পোর্ট করার মতো কোনো মেস নেই!" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "Single Mesh Import" -msgstr "" +msgstr "একক মেস ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "Source Mesh(es):" -msgstr "" +msgstr "মেস(সমূহ)-এর উৎস:" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh" -msgstr "" +msgstr "মেস" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "Surface %d" -msgstr "" +msgstr "পৃষ্ঠতল %d" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "No samples to import!" -msgstr "" +msgstr "ইম্পোর্ট করার মতো কোনো নমুনা নেই!" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Import Audio Samples" -msgstr "" +msgstr "শব্দের নমুনাসমূহ ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Source Sample(s):" -msgstr "" +msgstr "নমুনা(সমূহ)-এর উৎস:" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Audio Sample" -msgstr "" +msgstr "শব্দের নমুনা" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "New Clip" -msgstr "" +msgstr "নতুন ক্লিপ" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Animation Options" -msgstr "" +msgstr "অ্যানিমেশনের সিদ্ধান্তসমূহ" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Flags" -msgstr "" +msgstr "পতাকাসমূহ" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Bake FPS:" -msgstr "" +msgstr "সিদ্ধ FPS:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Optimizer" -msgstr "" +msgstr "পরিমার্জক" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Max Linear Error" -msgstr "" +msgstr "সর্বোচ্চ রৈখিক ভুল/সমস্যা" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Max Angular Error" -msgstr "" +msgstr "সর্বোচ্চ কৌণিক ভুল/সমস্যা" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Max Angle" -msgstr "" +msgstr "সর্বোচ্চ কোণ" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Clips" -msgstr "" +msgstr "ক্লিপসমূহ" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Start(s)" -msgstr "" +msgstr "আরম্ভ(সমূহ)" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "End(s)" -msgstr "" +msgstr "সমাপ্তি(সমূহ)" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Loop" -msgstr "" +msgstr "লুপ" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Filters" -msgstr "" +msgstr "ফিল্টারসমূহ" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Source path is empty." -msgstr "" +msgstr "উৎসের পথটি খালি।" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Couldn't load post-import script." -msgstr "" +msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট লোড করা সম্ভব হয়নি।" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Invalid/broken script for post-import." -msgstr "" +msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট অকার্যকর/ত্রুটিপূর্ণ।" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Error importing scene." -msgstr "" +msgstr "দৃশ্য ইম্পোর্টে সমস্যা হয়েছে।" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import 3D Scene" -msgstr "" +msgstr "3D দৃশ্য ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Source Scene:" -msgstr "" +msgstr "উৎস দৃশ্য:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Same as Target Scene" -msgstr "" +msgstr "উদ্দেশ্যিত দৃশ্যের ন্যায়" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Shared" -msgstr "" +msgstr "শেয়ারকৃত" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Target Texture Folder:" -msgstr "" +msgstr "গঠনবিন্যাসের উদ্দেশ্যিত ফোল্ডার:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Post-Process Script:" -msgstr "" +msgstr "প্রক্রিয়া-পরবর্তী স্ক্রিপ্ট:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Custom Root Node Type:" -msgstr "" +msgstr "স্বনির্মিত মূল নোডের ধরণ:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Auto" -msgstr "" +msgstr "স্বয়ংক্রিয়" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "মূল নোডের নাম:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" -msgstr "" +msgstr "নিম্নোক্ত ফাইলসমূহ অনুপস্থিত:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import Anyway" -msgstr "" +msgstr "যেকোনো উপায়েই ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import & Open" -msgstr "" +msgstr "ইম্পোর্ট করুন এবং খুলুন" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Edited scene has not been saved, open imported scene anyway?" -msgstr "" +msgstr "সম্পাদিত দৃশ্য সংরক্ষণ করা হয়নি, তবুও ইম্পোর্ট করা দৃশ্যটি খুলবেন?" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Import Scene" -msgstr "" +msgstr "দৃশ্য ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Importing Scene.." -msgstr "" +msgstr "দৃশ্য ইম্পোর্ট করা হচ্ছে.." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Running Custom Script.." -msgstr "" +msgstr "স্বনির্মিত স্ক্রিপ্ট চালানো হচ্ছে.." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Couldn't load post-import script:" -msgstr "" +msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট লোড করা সম্ভব হয়নি:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Invalid/broken script for post-import (check console):" -msgstr "" +msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট অকার্যকর/ত্রুটিপূর্ণ (কনসোল দেখুন):" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Error running post-import script:" -msgstr "" +msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট চালানোয় সমস্যা হয়েছে:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import Image:" -msgstr "" +msgstr "ছবি ইম্পোর্ট করুন:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Can't import a file over itself:" -msgstr "" +msgstr "ফাইলকে তার নিজের উপরেই ইম্পোর্ট করা সম্ভব নয়:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Couldn't localize path: %s (already local)" -msgstr "" +msgstr "পথ স্থানীয়করণ সম্ভব হচ্ছে না: %s (ইতিমধ্যেই স্থানীয়)" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Saving.." -msgstr "" +msgstr "সংরক্ষিত হচ্ছে.." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "3D Scene Animation" -msgstr "" +msgstr "3D দৃশ্যের অ্যানিমেশন" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Uncompressed" -msgstr "" +msgstr "অসংকুচিত" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Compress Lossless (PNG)" -msgstr "" +msgstr "ধ্বংসবিহীন সঙ্কোচন (PNG)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Compress Lossy (WebP)" -msgstr "" +msgstr "ধ্বংসাত্মক সঙ্কোচন (WebP)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Compress (VRAM)" -msgstr "" +msgstr "সঙ্কোচন (VRAM)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture Format" -msgstr "" +msgstr "গঠনবিন্যাসের ফরম্যাট" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture Compression Quality (WebP):" -msgstr "" +msgstr "গঠনবিন্যাস সঙ্কোচনের গুণমান (WebP):" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture Options" -msgstr "" +msgstr "গঠনবিন্যাসের সিদ্ধান্ত (অপশন)-সমূহ" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Please specify some files!" -msgstr "" +msgstr "অনুগ্রহ করে কিছু ফাইল নির্দিষ্ট করে দিন!" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "At least one file needed for Atlas." -msgstr "" +msgstr "এটলাস/মানচিত্রাবলীর জন্য কমপক্ষে একটি ফাইল প্রয়োজন।" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Error importing:" -msgstr "" +msgstr "ইম্পোর্টে সমস্যা হয়েছে:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Only one file is required for large texture." -msgstr "" +msgstr "বৃহৎ গঠনবিন্যাসের জন্য শুধুমাত্র একটি ফাইল প্রয়োজন।" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Max Texture Size:" -msgstr "" +msgstr "গঠনবিন্যাসের সর্বোচ্চ আকার:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures for Atlas (2D)" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলীর জন্য গঠনবিন্যাস ইম্পোর্ট করুন (2D)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Cell Size:" -msgstr "" +msgstr "সেল (Cell)-এর আকার:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Large Texture" -msgstr "" +msgstr "বৃহৎ গঠনবিন্যাস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Large Textures (2D)" -msgstr "" +msgstr "বৃহৎ গঠনবিন্যাস ইম্পোর্ট করুন (2D)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Source Texture" -msgstr "" +msgstr "গঠনবিন্যাসের উৎস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Base Atlas Texture" -msgstr "" +msgstr "গোড়ার এটলাস/মানচিত্রাবলীর গঠনবিন্যাস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Source Texture(s)" -msgstr "" +msgstr "গঠনবিন্যাস(সমূহ)-এর উৎস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures for 2D" -msgstr "" +msgstr "2D-এর জন্য গঠনবিন্যাসসমূহ ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures for 3D" -msgstr "" +msgstr "3D-এর জন্য গঠনবিন্যাসসমূহ ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures" -msgstr "" +msgstr "গঠনবিন্যাসসমূহ ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "2D Texture" -msgstr "" +msgstr "2D গঠনবিন্যাস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "3D Texture" -msgstr "" +msgstr "3D গঠনবিন্যাস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Atlas Texture" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলীর গঠনবিন্যাস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "" "NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files to " "the project." msgstr "" +"নোটিশ: 2D টেক্সচার (texture) ইম্পোর্ট (import) করা অত্যাবশ্যক নয়। শুধুমাত্র png/jpg " +"ফাইলসমূহ প্রকল্পে প্রতিলিপি/কপি করুন।" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Crop empty space." -msgstr "" +msgstr "খালি স্থান ছেঁটে ফেলুন।" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture" -msgstr "" +msgstr "গঠনবিন্যাস" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Large Texture" -msgstr "" +msgstr "বৃহৎ গঠনবিন্যাস ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Load Source Image" -msgstr "" +msgstr "উৎস হতে ছবি লোড করুন" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Slicing" -msgstr "" +msgstr "টুকরো করুন" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Inserting" -msgstr "" +msgstr "সন্নিবেশিত হচ্ছে" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Saving" -msgstr "" +msgstr "সংরক্ষিত হচ্ছে" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't save large texture:" -msgstr "" +msgstr "বৃহৎ গঠনবিন্যাস সংরক্ষণ করা সম্ভব হচ্ছে না:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Build Atlas For:" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলী নির্মাণ করুন:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Loading Image:" -msgstr "" +msgstr "ছবি লোড করা হচ্ছে:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't load image:" -msgstr "" +msgstr "ছবি লোড করা সম্ভব হচ্ছে না:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Converting Images" -msgstr "" +msgstr "ছবিসমূহ রূপান্তর করা হচ্ছে" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Cropping Images" -msgstr "" +msgstr "ছবিসমূহ ছাঁটা হচ্ছে" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Blitting Images" -msgstr "" +msgstr "ছবিসমূহ ব্লিটিং (Blitting) করা হচ্ছে" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't save atlas image:" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলীর ছবি সংরক্ষণ করা সম্ভব হচ্ছে না:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't save converted texture:" -msgstr "" +msgstr "রূপান্তরিত গঠনবিন্যাস সংরক্ষণ করা সম্ভব হচ্ছে না:" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Invalid source!" -msgstr "" +msgstr "অকার্যকর উৎস!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Invalid translation source!" -msgstr "" +msgstr "অকার্যকর অনুবাদের উৎস!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Column" -msgstr "" +msgstr "কলাম" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp #: tools/editor/script_create_dialog.cpp msgid "Language" -msgstr "" +msgstr "ভাষা" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "No items to import!" -msgstr "" +msgstr "ইম্পোর্ট করার মতো কোনো বস্তু নেই!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "No target path!" -msgstr "" +msgstr "কোনো উদ্দেশ্যিত পথ নেই!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Import Translations" -msgstr "" +msgstr "অনুবাদসমূহ ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Couldn't import!" -msgstr "" +msgstr "ইম্পোর্ট করা সম্ভব হচ্ছে না!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Import Translation" -msgstr "" +msgstr "অনুবাদ ইম্পোর্ট করুন" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Source CSV:" -msgstr "" +msgstr "CSV-এর উৎস:" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Ignore First Row" -msgstr "" +msgstr "প্রথম সারি অগ্রাহ্য করুন" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Compress" -msgstr "" +msgstr "সঙ্কোচন করুন" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Add to Project (engine.cfg)" -msgstr "" +msgstr "প্রকল্পে সংযুক্ত করুন (engine.cfg)" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Import Languages:" -msgstr "" +msgstr "ভাষাসমূহ ইম্পোর্ট করুন:" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Translation" -msgstr "" +msgstr "অনুবাদ" #: tools/editor/multi_node_edit.cpp msgid "MultiNode Set" -msgstr "" +msgstr "মাল্টি-নোড স্থাপন করুন" #: tools/editor/node_dock.cpp msgid "Groups" -msgstr "" +msgstr "দলসমূহ" #: tools/editor/node_dock.cpp msgid "Select a Node to edit Signals and Groups." -msgstr "" +msgstr "সিগন্যাল-সমূহ এবং দলসমূহ সম্পাদন করতে একটি নোড নির্বাচন করুন।" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "" +msgstr "স্বয়ংক্রিয়ভাবে চালানো টগল করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "" +msgstr "নতুন অ্যানিমেশনের নাম:" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "" +msgstr "নতুন অ্যানিমেশন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "" +msgstr "অ্যানিমেশনের নাম পরিবর্তন করুন:" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Remove Animation" -msgstr "" +msgstr "অ্যানিমেশন অপসারণ করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: Invalid animation name!" -msgstr "" +msgstr "ভুল: অগ্রহনযোগ্য অ্যানিমেশনের নাম!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: Animation name already exists!" -msgstr "" +msgstr "ভুল: অ্যানিমেশনের নাম ইতিমধ্যেই বিদ্যমান!" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Rename Animation" -msgstr "" +msgstr "অ্যানিমেশন পুনঃনামকরণ করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Animation" -msgstr "" +msgstr "অ্যানিমেশন যুক্ত করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" -msgstr "" +msgstr "পরবর্তী পরিবর্তনের সাথে ব্লেন্ড করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Change Blend Time" -msgstr "" +msgstr "ব্লেন্ড-এর সময় পরিবর্তন করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Load Animation" -msgstr "" +msgstr "অ্যানিমেশন লোড করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" -msgstr "" +msgstr "অ্যানিমেশন প্রতিলিপি করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation to copy!" -msgstr "" +msgstr "ভুল: প্রতিলিপি করার মতো কোনো অ্যানিমেশন নেই!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation resource on clipboard!" -msgstr "" +msgstr "ভুল: ক্লীপবোর্ডে অ্যানিমেশনের কোনো রিসোর্স নেই!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" -msgstr "" +msgstr "প্রতিলিপিত অ্যানিমেশন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Paste Animation" -msgstr "" +msgstr "অ্যানিমেশন প্রতিলেপন করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation to edit!" -msgstr "" +msgstr "ভুল: সম্পাদন করার মতো কোনো অ্যানিমেশন নেই!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" -msgstr "" +msgstr "নির্বাচিত অ্যানিমেশনটি বর্তমান স্থান হতে পিছনের দিকে চালান। (A)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from end. (Shift+A)" -msgstr "" +msgstr "নির্বাচিত অ্যানিমেশনটি শেষ হতে পিছনের দিকে চালান। (Shift+A)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Stop animation playback. (S)" -msgstr "" +msgstr "অ্যানিমেশনের চালনা বন্ধ করুন। (S)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from start. (Shift+D)" -msgstr "" +msgstr "নির্বাচিত অ্যানিমেশনটি শুরু হতে চালান। (Shift+D)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from current pos. (D)" -msgstr "" +msgstr "নির্বাচিত অ্যানিমেশনটি বর্তমান স্থান হতে চালান। (D)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Animation position (in seconds)." -msgstr "" +msgstr "অ্যানিমেশনের স্থান (সেকেন্ডে)।" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Scale animation playback globally for the node." -msgstr "" +msgstr "নোডের অ্যানিমেশন চালনার স্কেল/মাপ সার্বজনীনভাবে পরিবর্তন করুন।" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Create new animation in player." -msgstr "" +msgstr "প্লেয়ারে নতুন অ্যানিমেশন তৈরি করুন।" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Load animation from disk." -msgstr "" +msgstr "ডিস্ক হতে অ্যানিমেশন লোড করুন।" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Load an animation from disk." -msgstr "" +msgstr "ডিস্ক হতে একটি অ্যানিমেশন লোড করুন।" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Save the current animation" -msgstr "" +msgstr "বর্তমান অ্যানিমেশন সংরক্ষণ করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Save As" -msgstr "" +msgstr "এইরূপে সংরক্ষণ করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Display list of animations in player." -msgstr "" +msgstr "প্লেয়ারে অ্যানিমেশনসমূহের তালিকা দেখান।" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Autoplay on Load" -msgstr "" +msgstr "লোডের পরেই স্বয়ংক্রিয়ভাবে চালান্" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Target Blend Times" -msgstr "" +msgstr "উদ্দেশ্যিত ব্লেন্ড-এর সময় সম্পাদন করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" -msgstr "" +msgstr "অ্যানিমেশনের সরঞ্জামসমূহ" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Copy Animation" -msgstr "" +msgstr "অ্যানিমেশন প্রতিলিপি করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Create New Animation" -msgstr "" +msgstr "নতুন অ্যানিমেশন তৈরি করুন" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" -msgstr "" +msgstr "অ্যানিমেশনের নাম:" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/resource_preloader_editor_plugin.cpp @@ -3492,277 +3561,278 @@ msgstr "" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp #: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Error!" -msgstr "" +msgstr "ভুল/সমস্যা!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Times:" -msgstr "" +msgstr "ব্লেন্ড-এর সময়সমূহ:" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Next (Auto Queue):" -msgstr "" +msgstr "পরবর্তী (স্বয়ংক্রিয়ভাবে সারিবদ্ধ করুন):" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Cross-Animation Blend Times" -msgstr "" +msgstr "আন্ত-অ্যানিমেশন ব্লেন্ড সময়" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Animation" -msgstr "" +msgstr "অ্যানিমেশন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "New name:" -msgstr "" +msgstr "নতুন নাম:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Scale:" -msgstr "" +msgstr "স্কেল/মাপ:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Fade In (s):" -msgstr "" +msgstr "অন্তঃস্থ ফেড/বিলীন (সেঃ):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Fade Out (s):" -msgstr "" +msgstr "বহিঃস্থ ফেড/বিলীন (সেঃ):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend" -msgstr "" +msgstr "ব্লেন্ড/মিশ্রণ" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Mix" -msgstr "" +msgstr "মিশ্রিত করুন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Auto Restart:" -msgstr "" +msgstr "স্বয়ংক্রিয়ভাবে পুনরারম্ভ করুন:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Restart (s):" -msgstr "" +msgstr "পুনরারম্ভ (সেঃ):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Random Restart (s):" -msgstr "" +msgstr "যথেচ্ছ পুনরারম্ভ (সেঃ):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Start!" -msgstr "" +msgstr "আরম্ভ!" #: tools/editor/plugins/animation_tree_editor_plugin.cpp #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Amount:" -msgstr "" +msgstr "পরিমাণ:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend:" -msgstr "" +msgstr "ব্লেন্ড/মিশ্রণ:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend 0:" -msgstr "" +msgstr "ব্লেন্ড/মিশ্রণ ০:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend 1:" -msgstr "" +msgstr "ব্লেন্ড/মিশ্রণ ১:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "X-Fade Time (s):" -msgstr "" +msgstr "X-ফেড/বিলীন সময় (সেঃ):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Current:" -msgstr "" +msgstr "বর্তমান:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Add Input" -msgstr "" +msgstr "ইনপুট যোগ করুন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Clear Auto-Advance" -msgstr "" +msgstr "স্বয়ংক্রিয়-অগ্রগতি পরিষ্কার করুন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Set Auto-Advance" -msgstr "" +msgstr "স্বয়ংক্রিয়-অগ্রগতি স্থাপন করুন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Delete Input" -msgstr "" +msgstr "ইনপুট অপসারণ করুন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Rename" -msgstr "" +msgstr "পুনঃনামকরণ করুন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation tree is valid." -msgstr "" +msgstr "অ্যানিমেশনের তালিকাটি কার্যকর।" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation tree is invalid." -msgstr "" +msgstr "অ্যানিমেশনের তালিকাটি অকার্যকর।" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation Node" -msgstr "" +msgstr "অ্যানিমেশনের নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "OneShot Node" -msgstr "" +msgstr "ওয়ান-শট নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Mix Node" -msgstr "" +msgstr "মিশ্র নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend2 Node" -msgstr "" +msgstr "ব্লেন্ড২ নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend3 Node" -msgstr "" +msgstr "ব্লেন্ড৩ নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend4 Node" -msgstr "" +msgstr "ব্লেন্ড৪ নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "TimeScale Node" -msgstr "" +msgstr "টাইম-স্কেল নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "TimeSeek Node" -msgstr "" +msgstr "টাইম-সীক্ নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Transition Node" -msgstr "" +msgstr "ট্র্যানজিশন নোড" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Import Animations.." -msgstr "" +msgstr "অ্যানিমেশনসমূহ ইম্পোর্ট করুন.." #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Edit Node Filters" -msgstr "" +msgstr "নোড ফিল্টারসমূহ সম্পাদন করুন" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Filters.." -msgstr "" +msgstr "ফিল্টারসমূহ.." #: tools/editor/plugins/baked_light_baker.cpp msgid "Parsing %d Triangles:" -msgstr "" +msgstr "%d টি ত্রিভুজ বিশ্লেষণ করা হচ্ছে:" #: tools/editor/plugins/baked_light_baker.cpp msgid "Triangle #" -msgstr "" +msgstr "ত্রিভুজ #" #: tools/editor/plugins/baked_light_baker.cpp msgid "Light Baker Setup:" -msgstr "" +msgstr "লাইট্ সিদ্ধ/বেক্-এর সেটআপ:" #: tools/editor/plugins/baked_light_baker.cpp msgid "Parsing Geometry" -msgstr "" +msgstr "জ্যামিতিক-আকার বিশ্লেষণ করা হচ্ছে" #: tools/editor/plugins/baked_light_baker.cpp msgid "Fixing Lights" -msgstr "" +msgstr "লাইট্সমূহ ঠিক করা হচ্ছে" #: tools/editor/plugins/baked_light_baker.cpp msgid "Making BVH" -msgstr "" +msgstr "BVH তৈরি করা হচ্ছে" #: tools/editor/plugins/baked_light_baker.cpp msgid "Creating Light Octree" -msgstr "" +msgstr "লাইটের ওকট্রী (octree) তৈরি করা হচ্ছে" #: tools/editor/plugins/baked_light_baker.cpp msgid "Creating Octree Texture" -msgstr "" +msgstr "ওকট্রী (octree) গঠনবিন্যাস তৈরি করা হচ্ছে" #: tools/editor/plugins/baked_light_baker.cpp msgid "Transfer to Lightmaps:" -msgstr "" +msgstr "লাইট্ম্যাপে হস্তান্তর করুন:" #: tools/editor/plugins/baked_light_baker.cpp msgid "Allocating Texture #" -msgstr "" +msgstr "গঠনবিন্যাস বণ্টিত হচ্ছে #" #: tools/editor/plugins/baked_light_baker.cpp msgid "Baking Triangle #" -msgstr "" +msgstr "ত্রিভুজ সিদ্ধ/বেক্ করা হচ্ছে #" #: tools/editor/plugins/baked_light_baker.cpp msgid "Post-Processing Texture #" -msgstr "" +msgstr "গঠনবিন্যাসের প্রক্রিয়া-পরবর্তী প্রক্রিয়াকরণ #" #: tools/editor/plugins/baked_light_editor_plugin.cpp msgid "Bake!" -msgstr "" +msgstr "সিদ্ধ/বেক্!" #: tools/editor/plugins/baked_light_editor_plugin.cpp msgid "Reset the lightmap octree baking process (start over)." msgstr "" +"লাইট্ম্যাপ ওকট্রীর (octree) সিদ্ধ/বেক্-এর প্রক্রিয়াকরণ পুন:স্থাপন করুন (পুনরারম্ভ)।" #: tools/editor/plugins/camera_editor_plugin.cpp #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Preview" -msgstr "" +msgstr "প্রিভিউ" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" -msgstr "" +msgstr "স্ন্যাপ কনফিগার করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset:" -msgstr "" +msgstr "গ্রিডের অফসেট/ভারসাম্য:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Step:" -msgstr "" +msgstr "গ্রিডের পদক্ষেপ:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Offset:" -msgstr "" +msgstr "ঘূর্ণায়নের অফসেট/ভারসাম্য:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Step:" -msgstr "" +msgstr "ঘূর্ণায়নের পদক্ষেপ:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Pivot" -msgstr "" +msgstr "কেন্দ্র স্থানান্তর করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Action" -msgstr "" +msgstr "প্রক্রিয়া স্থানান্তর করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" -msgstr "" +msgstr "IK চেইন সম্পাদন করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit CanvasItem" -msgstr "" +msgstr "CanvasItem সম্পাদন করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" -msgstr "" +msgstr "অ্যাংকরসমূহ পরিবর্তন করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom (%):" -msgstr "" +msgstr "জুম্ (%):" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" -msgstr "" +msgstr "ভঙ্গি প্রতিলেপন করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" @@ -3770,19 +3840,19 @@ msgstr "মোড (Mode) বাছাই করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" -msgstr "" +msgstr "টান: ঘূর্ণন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+Drag: Move" -msgstr "" +msgstr "অল্টার কী + টান: স্থানান্তর" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." -msgstr "" +msgstr "কেন্দ্র পরিবর্তন করতে 'v' চাপুন, কেন্দ্র টানতে 'Shift+v' চাপুন (যখন সরাচ্ছেন)।" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+RMB: Depth list selection" -msgstr "" +msgstr "অল্টার কী + মাউসের ডান বোতাম: গভীর তালিকায় নির্বাচন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Mode" @@ -3790,7 +3860,7 @@ msgstr "মোড (Mode) সরান" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotate Mode" -msgstr "" +msgstr "ঘূর্ণায়ন মোড" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp @@ -3798,145 +3868,192 @@ msgid "" "Show a list of all objects at the position clicked\n" "(same as Alt+RMB in select mode)." msgstr "" +"ক্লিক-কৃত স্থানে সকল বস্তুর একটি তালিকা দেখুন\n" +"(ঠিক যেমন সিলেক্ট মোডে অল্টার কী (Alt) + মাউসের ডান বোতাম (RMB))।" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Click to change object's rotation pivot." -msgstr "" +msgstr "বস্তুর ঘূর্ণায়ন কেন্দ্র পরিবর্তন করতে ক্লিক করুন।" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan Mode" -msgstr "" +msgstr "প্যান মোড" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." -msgstr "" +msgstr "নির্বাচিত বস্তুটিকে এই স্থানে আটকিয়ে রাখুন (সরানো সম্ভব হবেনা)।" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." -msgstr "" +msgstr "নির্বাচিত বস্তুটিকে মুক্ত করুন (সরানো সম্ভব হবে)।" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." -msgstr "" +msgstr "বস্তুর অন্তর্ভুক্ত-সমূহ যাতে নির্বাচনযোগ্য না হয় তা নিশ্চিত করে।" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." -msgstr "" +msgstr "বস্তুর অন্তর্ভুক্ত-সমূহের নির্বাচনযোগ্যতা পুনরায় ফিরিয়ে আনে।" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Use Snap" -msgstr "" +msgstr "স্ন্যাপ ব্যবহার করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Show Grid" -msgstr "" +msgstr "গ্রিড দেখান" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" -msgstr "" +msgstr "ঘূর্ণন স্ন্যাপ ব্যবহার করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" -msgstr "" +msgstr "আপেক্ষিক স্ন্যাপ" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Configure Snap.." -msgstr "" +msgstr "স্ন্যাপ কনফিগার করুন.." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Pixel Snap" -msgstr "" +msgstr "পিক্সেল স্ন্যাপ ব্যবহার করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Expand to Parent" -msgstr "" +msgstr "ধারক/বাহক পর্যন্ত বিস্তৃত করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton.." -msgstr "" +msgstr "স্কেলেটন/কাঠাম.." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Bones" -msgstr "" +msgstr "বোন্/হাড় তৈরি করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Bones" -msgstr "" +msgstr "বোন্/হাড় পরিষ্কার করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" -msgstr "" +msgstr "বোন্/হাড় দেখান" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" -msgstr "" +msgstr "IK চেইন তৈরি করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear IK Chain" -msgstr "" +msgstr "IK চেইন পরিষ্কার করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "" +msgstr "দৃশ্য/পরিদর্শন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom Reset" -msgstr "" +msgstr "জুম্ পুন:স্থাপন করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom Set.." -msgstr "" +msgstr "জুম্ নির্ধারণ করুন.." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" -msgstr "" +msgstr "নির্বাচনকে কেন্দ্রীভূত করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "" +msgstr "নির্বাচনকে ফ্রেমভূক্ত করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchor" -msgstr "" +msgstr "অ্যাংকর" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Keys" -msgstr "" +msgstr "চাবিসমূহ সন্নিবেশ করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "চাবি সন্নিবেশ করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" -msgstr "" +msgstr "চাবি সন্নিবেশ করুন (বিদ্যমান ট্র্যাক/পথসমূহ)" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Copy Pose" -msgstr "" +msgstr "ভঙ্গি প্রতিলিপি করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Pose" -msgstr "" +msgstr "ভঙ্গি পরিষ্কার করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Set a Value" -msgstr "" +msgstr "একটি মান নির্ধারণ করুন" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap (Pixels):" +msgstr "স্ন্যাপ (পিক্সেলসমূহ):" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "%s সংযুক্ত করুন" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "%s সংযুক্ত হচ্ছে..." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "নোড তৈরি করুন" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "%s হতে দৃশ্য ইনস্ট্যান্স করাতে সমস্যা হয়েছে" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "ঠিক আছে :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "ইনস্ট্যান্স করার জন্য প্রয়োজনীয় ধারক উপস্থিত নেই।" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "এই কাজটি করার জন্য একটি একক নির্বাচিত নোড প্রয়োজন।" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "ডিফল্ট ধরণ পরিবর্তন করুন" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" msgstr "" +"টানুন এবং ফেলুন + শিফট কী (Shift) : সহোদর নোড সংযোজন করতে\n" +"টানুন এবং ফেলুন + অল্টার কী (Alt) : নোডের ধরণ পরিবর্তন করতে" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create Poly" -msgstr "" +msgstr "Poly তৈরি করুন" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/collision_polygon_editor_plugin.cpp @@ -3945,7 +4062,7 @@ msgstr "" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Edit Poly" -msgstr "" +msgstr "Poly সম্পাদন করুন" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/collision_polygon_editor_plugin.cpp @@ -3954,2267 +4071,2318 @@ msgstr "" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Edit Poly (Remove Point)" -msgstr "" +msgstr "Poly সম্পাদন করুন (বিন্দু অপসারণ করুন)" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create a new polygon from scratch." -msgstr "" +msgstr "আরম্ভ হতে নতুন polygon তৈরি করুন।" #: tools/editor/plugins/collision_polygon_editor_plugin.cpp msgid "Create Poly3D" -msgstr "" +msgstr "Poly3D তৈরি করুন" #: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" -msgstr "" +msgstr "হ্যান্ডেল স্থাপন করুন" #: tools/editor/plugins/color_ramp_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" -msgstr "" +msgstr "রঙ্গের র্যাম্প বিন্দু সংযোজন/বিয়োজন করুন" #: tools/editor/plugins/color_ramp_editor_plugin.cpp #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Modify Color Ramp" -msgstr "" +msgstr "রঙ্গের র্যাম্প পরিবর্তন করুন" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Creating Mesh Library" -msgstr "" +msgstr "মেস লাইব্রেরি তৈরি হচ্ছে" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Thumbnail.." -msgstr "" +msgstr "থাম্বনেইল.." #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Remove item %d?" -msgstr "" +msgstr "%d টি বস্তু অপসারণ করবেন?" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Add Item" -msgstr "" +msgstr "বস্তু যোগ করুন" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Remove Selected Item" -msgstr "" +msgstr "নির্বাচিত বস্তুটি অপসারণ করুন" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Import from Scene" -msgstr "" +msgstr "দৃশ্য হতে ইম্পোর্ট করুন" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Update from Scene" -msgstr "" +msgstr "দৃশ্য হতে হালনাগাদ করুন" #: tools/editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" -msgstr "" +msgstr "বস্তু %d" #: tools/editor/plugins/item_list_editor_plugin.cpp msgid "Items" -msgstr "" +msgstr "বস্তুসমূহ" #: tools/editor/plugins/item_list_editor_plugin.cpp msgid "Item List Editor" -msgstr "" +msgstr "বস্তুর তালিকা এডিটর" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" -msgstr "" +msgstr "অকলুডার (occluder) পলিগন তৈরি করুন" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Edit existing polygon:" -msgstr "" +msgstr "বিদ্যমান পলিগন সম্পাদন করুন:" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "LMB: Move Point." -msgstr "" +msgstr "মাউসের বাম বোতাম: বিন্দু সরান।" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Ctrl+LMB: Split Segment." -msgstr "" +msgstr "কন্ট্রোল + মাউসের বাম বোতাম: অংশ বিভক্ত করুন।" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "RMB: Erase Point." -msgstr "" +msgstr "মাউসের ডান বোতাম: বিন্দু মুছে ফেলুন।" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" -msgstr "" +msgstr "মেসটি খালি!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" -msgstr "" +msgstr "স্থিত-ট্রাইমেস বডি গঠন করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Convex Body" -msgstr "" +msgstr "স্থিত-কনভেক্স বডি গঠন করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "This doesn't work on scene root!" -msgstr "" +msgstr "দৃশ্যের গোড়ায় এটি কাজ করেনা!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Shape" -msgstr "" +msgstr "ট্রাইমেস আকার তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Shape" -msgstr "" +msgstr "কনভেক্স আকার তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" -msgstr "" +msgstr "Navigation Mesh তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" -msgstr "" +msgstr "MeshInstance-এ Mesh নেই!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh has not surface to create outlines from!" -msgstr "" +msgstr "প্রান্তরেখা তৈরি করার জন্য প্রয়োজনীয় Mesh এর কোনো পৃষ্ঠতল নেই!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Could not create outline!" -msgstr "" +msgstr "প্রান্তরেখা তৈরি করা সম্ভব হয়নি!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline" -msgstr "" +msgstr "প্রান্তরেখা তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" -msgstr "" +msgstr "স্থিত-ট্রাইমেস বডি তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Static Body" -msgstr "" +msgstr "স্থিত-কনভেক্স বডি তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" -msgstr "" +msgstr "ট্রাইমেস কলিশ়ন সহোদর তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Collision Sibling" -msgstr "" +msgstr "কনভেক্স কলিশ়ন সহোদর তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh.." -msgstr "" +msgstr "প্রান্তরেখা মেস তৈরি করুন.." #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh" -msgstr "" +msgstr "প্রান্তরেখা মেস তৈরি করুন" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Outline Size:" -msgstr "" +msgstr "প্রান্তরেখার আকার:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." -msgstr "" +msgstr "মেসের কোনো উৎস নির্দিষ্ট করা নেই (এবং নোডে কোনো মাল্টিমেস স্থাপন করা নেই)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and MultiMesh contains no Mesh)." -msgstr "" +msgstr "মেসের কোনো উৎস নির্দিষ্ট করা নেই (এবং মাল্টিমেসে কোনো মেস নেই)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (invalid path)." -msgstr "" +msgstr "মেসের উৎস আকার্যকর (আকার্যকর পথ)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (not a MeshInstance)." -msgstr "" +msgstr "Mesh-এর উৎস অগ্রহণযোগ্য (MeshInstance নয়)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (contains no Mesh resource)." -msgstr "" +msgstr "Mesh-এর উৎস অগ্রহণযোগ্য (কোনো Mesh রিসোর্স নেই)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "No surface source specified." -msgstr "" +msgstr "কোনো পৃষ্ঠতলের উৎস নির্দিষ্ট করা নেই।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (invalid path)." -msgstr "" +msgstr "পৃষ্ঠতলের উৎস অকার্যকর (অকার্যকর পথ)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no geometry)." -msgstr "" +msgstr "পৃষ্ঠতলের উৎস অকার্যকর (কোনো জ্যামিতিক আকার নেই)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no faces)." -msgstr "" +msgstr "পৃষ্ঠতলের উৎস অকার্যকর (কোনো ফোকাস নেই)।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Parent has no solid faces to populate." -msgstr "" +msgstr "পপুলেট করার জন্য ধারকের কোনো নিরেট পৃষ্ঠ নেই।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Couldn't map area." -msgstr "" +msgstr "এলাকার নকশা করা সম্ভব হয়নি।" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Source Mesh:" -msgstr "" +msgstr "Mesh-এর একটি উৎস নির্বাচন করুন:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Target Surface:" -msgstr "" +msgstr "একটি উদ্দেশ্যিত পৃষ্ঠতল নির্বাচন করুন:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Populate Surface" -msgstr "" +msgstr "পৃষ্ঠতল পপুলেট করুন" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Populate MultiMesh" -msgstr "" +msgstr "MultiMesh পপুলেট করুন" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Target Surface:" -msgstr "" +msgstr "উদ্দেশ্যিত পৃষ্ঠতল:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Source Mesh:" -msgstr "" +msgstr "উৎস Mesh:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "X-Axis" -msgstr "" +msgstr "X-অক্ষ" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Y-Axis" -msgstr "" +msgstr "Y-অক্ষ" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Z-Axis" -msgstr "" +msgstr "Z-অক্ষ" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh Up Axis:" -msgstr "" +msgstr "অক্ষতে Mesh দিন:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Random Rotation:" -msgstr "" +msgstr "যথেচ্ছ ঘূর্ণায়ন:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Random Tilt:" -msgstr "" +msgstr "যথেচ্ছ ঢাল:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Random Scale:" -msgstr "" +msgstr "যথেচ্ছ মাপ:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Populate" -msgstr "" +msgstr "পপুলেট" #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create Navigation Polygon" -msgstr "" +msgstr "Navigation Polygon তৈরি করুন" #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Remove Poly And Point" -msgstr "" +msgstr "পলি এবং বিন্দু অপসারণ করুন" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Error loading image:" -msgstr "" +msgstr "ছবি লোডে সমস্যা হয়েছে:" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "No pixels with transparency > 128 in image.." -msgstr "" +msgstr "স্বচ্ছতাসহ কোনো পিক্সেল নেই > ছবিতে ১২৮.." #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Set Emission Mask" -msgstr "" +msgstr "Emission Mask স্থাপন করুন" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Clear Emission Mask" -msgstr "" +msgstr "Emission Mask পরিস্কার করুন" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Load Emission Mask" -msgstr "" +msgstr "Emission Mask লোড করুন" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Generated Point Count:" -msgstr "" +msgstr "উৎপাদিত বিন্দুর সংখ্যা:" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry." -msgstr "" +msgstr "নোডে কোনো জ্যামিতিক আকার নেই।" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry (faces)." -msgstr "" +msgstr "নোডে কোনো জ্যামিতিক আকার নেই (পৃষ্ঠ)।" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Faces contain no area!" -msgstr "" +msgstr "পৃষ্ঠসমূহ কোনো আকার নেই!" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "No faces!" -msgstr "" +msgstr "কোনো পৃষ্ঠ নেই!" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Generate AABB" -msgstr "" +msgstr "AABB উৎপন্ন করুন" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter From Mesh" -msgstr "" +msgstr "Mesh হতে Emitter তৈরি করুন" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter From Node" -msgstr "" +msgstr "Node হতে Emitter তৈরি করুন" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Clear Emitter" -msgstr "" +msgstr "Emitter পরিস্কার করুন" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter" -msgstr "" +msgstr "Emitter তৈরি করুন" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Emission Positions:" -msgstr "" +msgstr "Emission-এর স্থানসমূহ:" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Emission Fill:" -msgstr "" +msgstr "Emission পূরণ:" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Surface" -msgstr "" +msgstr "পৃষ্ঠতল" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Volume" -msgstr "" +msgstr "আয়তন" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" -msgstr "" +msgstr "বক্ররেখা হতে বিন্দু অপসারণ করুন" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Add Point to Curve" -msgstr "" +msgstr "বক্ররেখায় বিন্দু যোগ করুন" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" -msgstr "" +msgstr "বক্ররেখায় বিন্দু সরান" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Move In-Control in Curve" -msgstr "" +msgstr "বক্ররেখা আন্ত-নিয়ন্ত্রণে সরান" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Move Out-Control in Curve" -msgstr "" +msgstr "বক্ররেখা বহিঃ-নিয়ন্ত্রণে সরান" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Select Points" -msgstr "" +msgstr "বিন্দুসমূহ নির্বাচন করুন" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Shift+Drag: Select Control Points" -msgstr "" +msgstr "শিফট + টান: নিয়ন্ত্রণ বিন্দুসমূহ নির্বাচন করুন" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Click: Add Point" -msgstr "" +msgstr "ক্লিক: বিন্দু যোগ করুন" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" -msgstr "" +msgstr "ডান ক্লিক: বিন্দু অপসারণ করুন" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" -msgstr "" +msgstr "নিয়ন্ত্রণ বিন্দুসমূহ নির্বাচন করুন (শিফট + টান)" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Add Point (in empty space)" -msgstr "" +msgstr "বিন্দু যোগ করুন (শূন্যস্থানে)" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" -msgstr "" +msgstr "অংশ বিভক্ত করুন (বক্ররেখায়)" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Delete Point" -msgstr "" +msgstr "বিন্দু অপসারণ করুন" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Close Curve" -msgstr "" +msgstr "বক্ররেখা বন্ধ করুন" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Curve Point #" -msgstr "" +msgstr "বক্ররেখার বিন্দু #" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Set Curve Point Pos" -msgstr "" +msgstr "বক্ররেখার বিন্দুর স্থান নির্ধারণ করুন" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Set Curve In Pos" -msgstr "" +msgstr "আন্ত-বক্ররেখার স্থান নির্ধারণ করুন" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Set Curve Out Pos" -msgstr "" +msgstr "বহিঃ-বক্ররেখার স্থান নির্ধারণ করুন" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Split Path" -msgstr "" +msgstr "পথ বিভক্ত করুন" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Remove Path Point" -msgstr "" +msgstr "পথের বিন্দু অপসারণ করুন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" -msgstr "" +msgstr "UV Map তৈরি করুন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform UV Map" -msgstr "" +msgstr "UV Map রুপান্তর করুন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" -msgstr "" +msgstr "Polygon 2D UV এডিটর" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Point" -msgstr "" +msgstr "বিন্দু সরান" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" -msgstr "" +msgstr "কন্ট্রোল বোতাম: ঘূর্ণন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" -msgstr "" +msgstr "শিফট্: সবগুলি নড়ান" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift+Ctrl: Scale" -msgstr "" +msgstr "শিফট্ + কন্ট্রোল: মাপ" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Polygon" -msgstr "" +msgstr "পলিগন সরান" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Rotate Polygon" -msgstr "" +msgstr "পলিগন ঘুরান" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Scale Polygon" -msgstr "" +msgstr "পলিগন মাপ করুন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon->UV" -msgstr "" +msgstr "পলিগন->UV" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV->Polygon" -msgstr "" +msgstr "UV->পলিগন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Clear UV" -msgstr "" +msgstr "UV পরিস্কার করুন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Snap" -msgstr "" +msgstr "স্ন্যাপ" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Enable Snap" -msgstr "" +msgstr "স্ন্যাপ সক্রিয় করুন" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid" -msgstr "" +msgstr "গ্রিড" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" -msgstr "" +msgstr "সমস্যা: রিসোর্স লোড করা সম্ভব হয়নি!" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "Add Resource" -msgstr "" +msgstr "রিসোর্স যোগ করুন" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "Rename Resource" -msgstr "" +msgstr "রিসোর্স পুনঃনামকরণ করুন" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Resource" -msgstr "" +msgstr "রিসোর্স অপসারণ করুন" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "Resource clipboard is empty!" -msgstr "" +msgstr "রিসোর্সের ক্লীপবোর্ড খালি!" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" -msgstr "" +msgstr "রিসোর্স লোড করুন" #: tools/editor/plugins/rich_text_editor_plugin.cpp msgid "Parse BBCode" -msgstr "" +msgstr "BBCode বিশ্লেষণ করুন" #: tools/editor/plugins/sample_editor_plugin.cpp msgid "Length:" -msgstr "" +msgstr "লম্বা:" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Open Sample File(s)" -msgstr "" +msgstr "নমুনা ফাইল(সমূহ) খুলুন" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "ERROR: Couldn't load sample!" -msgstr "" +msgstr "সমস্যা: নমুনা লোড করা সম্ভব হয়নি!" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Add Sample" -msgstr "" +msgstr "নমুনা যোগ করুন" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Rename Sample" -msgstr "" +msgstr "নমুনা পুনঃনামকরণ করুন" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Delete Sample" -msgstr "" +msgstr "নমুনা অপসারণ করুন" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "16 Bits" -msgstr "" +msgstr "১৬ বিটস্" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "8 Bits" -msgstr "" +msgstr "৮ বিটস্" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Stereo" -msgstr "" +msgstr "স্টেরিও" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Mono" -msgstr "" +msgstr "মনো" #: tools/editor/plugins/sample_library_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Format" -msgstr "" +msgstr "ফরম্যাট" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Pitch" -msgstr "" +msgstr "পিচ্" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error while saving theme" -msgstr "" +msgstr "থিম সংরক্ষণে সমস্যা হয়েছে" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error saving" -msgstr "" +msgstr "সংরক্ষণে সমস্যা হয়েছে" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error importing theme" -msgstr "" +msgstr "থিম ইম্পোর্টে সমস্যা হয়েছে" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error importing" -msgstr "" +msgstr "ইম্পোর্টে সমস্যা হয়েছে" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Import Theme" -msgstr "" +msgstr "থিম ইম্পোর্ট করুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save Theme As.." -msgstr "" +msgstr "থিম এইরূপে সংরক্ষণ করুন.." #: tools/editor/plugins/script_editor_plugin.cpp msgid "Next script" -msgstr "" +msgstr "পরবর্তী স্ক্রিপ্ট" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Previous script" -msgstr "" +msgstr "পূর্ববর্তী স্ক্রিপ্ট" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/project_export.cpp msgid "File" -msgstr "" +msgstr "ফাইল" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/property_editor.cpp msgid "New" -msgstr "" +msgstr "নতুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save All" -msgstr "" +msgstr "সকল্গুলি সংরক্ষণ করুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" -msgstr "" +msgstr "স্বল্প-প্রভাবসহ স্ক্রিপ্ট রিলোড করুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "History Prev" -msgstr "" +msgstr "পূর্বের ইতিহাস" #: tools/editor/plugins/script_editor_plugin.cpp msgid "History Next" -msgstr "" +msgstr "পরের ইতিহাস" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" -msgstr "" +msgstr "থিম রিলোড করুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save Theme" -msgstr "" +msgstr "থিম সংরক্ষণ করুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save Theme As" -msgstr "" +msgstr "থিম এইরূপে সংরক্ষণ করুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Close Docs" -msgstr "" +msgstr "ডকুমেন্টসমূহ বন্ধ করুন" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "সবগুলি বাছাই করুন" +msgstr "সবগুলি বন্ধ করুন" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Find.." -msgstr "" +msgstr "খুঁজুন.." #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Find Next" -msgstr "" +msgstr "পরবর্তী খুঁজুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Debug" -msgstr "" +msgstr "ডিবাগ" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Step Over" -msgstr "" +msgstr "ধাপ লাফিয়ে যান" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Step Into" -msgstr "" +msgstr "পদার্পণ করুন" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Break" -msgstr "" +msgstr "বিরতি/ভাঙ্গন" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Continue" -msgstr "" +msgstr "সচল" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" -msgstr "" +msgstr "ডিবাগার খোলা রাখুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Window" -msgstr "" +msgstr "উইন্ডো" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Move Left" -msgstr "" +msgstr "বামে সরান" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Move Right" -msgstr "" +msgstr "ডানে সরান" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Tutorials" -msgstr "" +msgstr "টিউটোরিয়ালসমূহ" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Open https://godotengine.org at tutorials section." -msgstr "" +msgstr "টিউটোরিয়ালের স্থানে https://godotengine.org খুলুন।" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Classes" -msgstr "" +msgstr "ক্লাসসমূহ" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Search the class hierarchy." -msgstr "" +msgstr "ক্লাসের ক্রমোচ্চতা খুঁজুন।" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Search the reference documentation." -msgstr "" +msgstr "রেফারেন্সের ডকুমেন্টেশনে খুঁজুন।" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Go to previous edited document." -msgstr "" +msgstr "পূর্বের সম্পাদিত ডকুমেন্টে যান।" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Go to next edited document." -msgstr "" +msgstr "পরের সম্পাদিত ডকুমেন্টে যান।" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Create Script" -msgstr "" +msgstr "স্ক্রিপ্ট তৈরি করুন" #: tools/editor/plugins/script_editor_plugin.cpp msgid "" "The following files are newer on disk.\n" "What action should be taken?:" msgstr "" +"নিম্নোক্ত ফাইলসমূহ ডিস্কে নতুনতর।\n" +"কোন সিধান্তটি নেয়া উচিত হবে?:" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Reload" -msgstr "" +msgstr "রিলোড" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Resave" -msgstr "" +msgstr "পুনঃসংরক্ষণ" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Debugger" -msgstr "" +msgstr "ডিবাগার" #: tools/editor/plugins/script_editor_plugin.cpp msgid "" "Built-in scripts can only be edited when the scene they belong to is loaded" -msgstr "" +msgstr "পূর্বনির্মিত স্ক্রিপ্ট শুধুমাত্র তাদের অধিকারী দৃশ্য লোড করা হলেই সম্পাদন করা যাবে" #: tools/editor/plugins/script_text_editor.cpp msgid "Pick Color" -msgstr "" +msgstr "রঙ পছন্দ করুন" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" -msgstr "" +msgstr "উপরে যান" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Down" -msgstr "" +msgstr "নীচে যান" #: tools/editor/plugins/script_text_editor.cpp msgid "Indent Left" -msgstr "" +msgstr "বামে মাত্রা দিন" #: tools/editor/plugins/script_text_editor.cpp msgid "Indent Right" -msgstr "" +msgstr "ডানে মাত্রা দিন" #: tools/editor/plugins/script_text_editor.cpp msgid "Toggle Comment" -msgstr "" +msgstr "কমেন্ট টগল করুন" #: tools/editor/plugins/script_text_editor.cpp msgid "Clone Down" -msgstr "" +msgstr "ক্লোন করে নীচে নিন" #: tools/editor/plugins/script_text_editor.cpp msgid "Complete Symbol" -msgstr "" +msgstr "সিম্বল সম্পূর্ণ করুন" #: tools/editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" -msgstr "" +msgstr "শেষের হোয়াইটস্পেস ছেঁটে ফেলুন" #: tools/editor/plugins/script_text_editor.cpp msgid "Auto Indent" -msgstr "" +msgstr "স্বয়ংক্রিয়ভাবে মাত্রা দিন" #: tools/editor/plugins/script_text_editor.cpp msgid "Remove All Breakpoints" -msgstr "" +msgstr "সকল বিরতি-বিন্দু-সমূহ অপসারণ করুন" #: tools/editor/plugins/script_text_editor.cpp msgid "Goto Next Breakpoint" -msgstr "" +msgstr "পরের বিরতিবিন্দুতে যান" #: tools/editor/plugins/script_text_editor.cpp msgid "Goto Previous Breakpoint" -msgstr "" +msgstr "পূর্বের বিরতিবিন্দুতে যান" #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" -msgstr "" +msgstr "পূর্বে খুঁজুন" #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Replace.." -msgstr "" +msgstr "প্রতিস্থাপন.." #: tools/editor/plugins/script_text_editor.cpp msgid "Goto Function.." -msgstr "" +msgstr "ফাংশনে যান.." #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." -msgstr "" +msgstr "লাইনে যান.." #: tools/editor/plugins/script_text_editor.cpp msgid "Contextual Help" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" +msgstr "প্রাসঙ্গিক সাহায্য" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" -msgstr "" +msgstr "স্কেলার ধ্রুবক পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Constant" -msgstr "" +msgstr "ভেক্টর ধ্রুবক পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Constant" -msgstr "" +msgstr "RGB ধ্রুবক পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Operator" -msgstr "" +msgstr "স্কেলার অপারেটর পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Operator" -msgstr "" +msgstr "ভেক্টর অপারেটর পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Scalar Operator" -msgstr "" +msgstr "ভেক্টর স্কেলার অপারেটর পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Operator" -msgstr "" +msgstr "RGB অপারেটর পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Toggle Rot Only" -msgstr "" +msgstr "শুধুমাত্র ঘূর্ণন টগল করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Function" -msgstr "" +msgstr "স্কেলার ফাংশন পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Function" -msgstr "" +msgstr "ভেক্টর ফাংশন পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Uniform" -msgstr "" +msgstr "স্কেলার ইউনিফর্ম পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Uniform" -msgstr "" +msgstr "ভেক্টর ইউনিফর্ম পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Uniform" -msgstr "" +msgstr "RGB ইউনিফর্ম পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Default Value" -msgstr "" +msgstr "প্রাথমিক মান পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change XForm Uniform" -msgstr "" +msgstr "XForm ইউনিফর্ম পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Texture Uniform" -msgstr "" +msgstr "টেক্সার ইউনিফর্ম পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Cubemap Uniform" -msgstr "" +msgstr "Cubemap ইউনিফর্ম পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Comment" -msgstr "" +msgstr "কমেন্ট পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Add/Remove to Color Ramp" -msgstr "" +msgstr "রঙ্গের র্যাম্পে সংযোজন/বিয়োজন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Add/Remove to Curve Map" -msgstr "" +msgstr "Curve Map-এ সংযোজন/বিয়োজন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Modify Curve Map" -msgstr "" +msgstr "Curve Map পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Input Name" -msgstr "" +msgstr "ইনপুট নাম পরিবর্তন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Connect Graph Nodes" -msgstr "" +msgstr "গ্রাফের নোডসমূহ সংযুক্ত করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Disconnect Graph Nodes" -msgstr "" +msgstr "গ্রাফের নোডসমূহ বিচ্ছিন্ন করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Remove Shader Graph Node" -msgstr "" +msgstr "Shader Graph Node অপসারণ করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Move Shader Graph Node" -msgstr "" +msgstr "Shader Graph Node সরান" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Duplicate Graph Node(s)" -msgstr "" +msgstr "গ্রাফ নোড(সমূহ) প্রতিলিপি করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Delete Shader Graph Node(s)" -msgstr "" +msgstr "Shader Graph Node(s) অপসারণ করুন" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Error: Cyclic Connection Link" -msgstr "" +msgstr "সমস্যা: আবর্তনশীল সংযোগ লিঙ্ক" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Error: Missing Input Connections" -msgstr "" +msgstr "সমস্যা: ইনপুট সংযোগ নেই" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Add Shader Graph Node" -msgstr "" +msgstr "Shader Graph Node যোগ করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" -msgstr "" +msgstr "সমকোণীয় (Orthogonal)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Perspective" -msgstr "" +msgstr "পরিপ্রেক্ষিত (Perspective)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Aborted." -msgstr "" +msgstr "রুপান্তর নিষ্ফলা করা হয়েছে।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "X-Axis Transform." -msgstr "" +msgstr "X-অক্ষ রুপান্তর।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Y-Axis Transform." -msgstr "" +msgstr "Y-অক্ষ রুপান্তর।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Z-Axis Transform." -msgstr "" +msgstr "Z-অক্ষ রুপান্তর।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Plane Transform." -msgstr "" +msgstr "প্লেন-এর রুপান্তর দেখুন।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scaling to %s%%." -msgstr "" +msgstr "%s%% -এ মাপিত হচ্ছে।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." -msgstr "" +msgstr "%s ডিগ্রি ঘূর্ণিত হচ্ছে।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View." -msgstr "" +msgstr "নিম্ন দর্শন।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Bottom" -msgstr "" +msgstr "নিম্ন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Top View." -msgstr "" +msgstr "শীর্ষ দর্শন।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Top" -msgstr "" +msgstr "শীর্ষ" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rear View." -msgstr "" +msgstr "পশ্চাৎ দর্শন।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rear" -msgstr "" +msgstr "পশ্চাৎ" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Front View." -msgstr "" +msgstr "সন্মুখ দর্শন।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Front" -msgstr "" +msgstr "সন্মুখ" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Left View." -msgstr "" +msgstr "বাম দর্শন।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Left" -msgstr "" +msgstr "বাম" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Right View." -msgstr "" +msgstr "ডান দর্শন।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Right" -msgstr "" +msgstr "ডান" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Keying is disabled (no key inserted)." -msgstr "" +msgstr "চাবিসংযোক নিষ্ক্রিয় আছে (কোনো চাবি সংযুক্ত হয়নি)।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Animation Key Inserted." -msgstr "" +msgstr "অ্যানিমেশনের চাবি সন্নিবেশিত হয়েছে।" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" -msgstr "" +msgstr "দর্শনের সাথে সারিবদ্ধ করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Environment" -msgstr "" +msgstr "পরিবেশ (Environment)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" -msgstr "" +msgstr "অডিও শ্রোতা" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Gizmos" -msgstr "" +msgstr "গিজমোস" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" -msgstr "" +msgstr "XForm এর সংলাপ" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "No scene selected to instance!" -msgstr "" +msgstr "ইন্সট্যান্স করার জন্য কোনো দৃশ্য নির্বাচন করা হয়নি!" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Instance at Cursor" -msgstr "" +msgstr "কার্সরের স্থানে ইন্সট্যান্স করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Could not instance scene!" -msgstr "" +msgstr "দৃশ্য ইন্সট্যান্স করা সম্ভব হয়নি!" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Move Mode (W)" -msgstr "" +msgstr "সরানোর মোড (W)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Mode (E)" -msgstr "" +msgstr "ঘোরানোর মোড (E)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scale Mode (R)" -msgstr "" +msgstr "মাপের মোড করুন (R)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" -msgstr "" +msgstr "নিম্ন দর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Top View" -msgstr "" +msgstr "শীর্ষ দর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rear View" -msgstr "" +msgstr "পশ্চাৎ দর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Front View" -msgstr "" +msgstr "সন্মুখ দর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Left View" -msgstr "" +msgstr "বাম দর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Right View" -msgstr "" +msgstr "ডান দর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Switch Perspective/Orthogonal view" -msgstr "" +msgstr "পরিপ্রেক্ষিত/সমকোণীয় (Perspective/Orthogonal) দর্শন পরিবর্তন করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Insert Animation Key" -msgstr "" +msgstr "অ্যানিমেশনের চাবি সন্নিবেশ করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Origin" -msgstr "" +msgstr "অরিজিনে ফোকাস করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Selection" -msgstr "" +msgstr "নির্বাচনে ফোকাস করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Align Selection With View" -msgstr "" +msgstr "নির্বাচনকে দর্শনের সাথে সারিবদ্ধ করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform" -msgstr "" +msgstr "রুপান্তর" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Local Coords" -msgstr "" +msgstr "স্থানীয় স্থানাঙ্কসমূহ" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog.." -msgstr "" +msgstr "রুপান্তরের এর সংলাপ.." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Use Default Light" -msgstr "" +msgstr "প্রাথমিক লাইট ব্যবহার করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Use Default sRGB" -msgstr "" +msgstr "প্রাথমিক sRGB ব্যবহার করুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "1 Viewport" -msgstr "" +msgstr "১ টি Viewport" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports" -msgstr "" +msgstr "২ টি Viewports" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports (Alt)" -msgstr "" +msgstr "২ টি Viewports (অল্টার)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports" -msgstr "" +msgstr "৩ টি Viewports" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports (Alt)" -msgstr "" +msgstr "৩ টি Viewports (অল্টার)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "4 Viewports" -msgstr "" +msgstr "৪ টি Viewports" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Normal" -msgstr "" +msgstr "Normal প্রদর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Wireframe" -msgstr "" +msgstr "Wireframe প্রদর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Overdraw" -msgstr "" +msgstr "Overdraw প্রদর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Shadeless" -msgstr "" +msgstr "Shadeless প্রদর্শন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Origin" -msgstr "" +msgstr "অরিজিন দেখুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Grid" -msgstr "" +msgstr "গ্রিড দেখুন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" -msgstr "" +msgstr "স্ন্যাপ সেটিংস" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "" +msgstr "স্ন্যাপ-এর স্থানান্তর:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "" +msgstr "স্ন্যাপ-এর ঘূর্ণন (ডিগ্রি):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" -msgstr "" +msgstr "স্ন্যাপ-এর মাপন (%):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" -msgstr "" +msgstr "Viewport সেটিংস" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Default Light Normal:" -msgstr "" +msgstr "লাইটের প্রাথমিক নরমাল:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Ambient Light Color:" -msgstr "" +msgstr "অ্যাম্বিয়েন্ট লাইটের রঙ:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Perspective FOV (deg.):" -msgstr "" +msgstr "পরিপ্রেক্ষিত (Perspective) FOV (ডিগ্রি):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Near:" -msgstr "" +msgstr "Z-Near দেখুন:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Far:" -msgstr "" +msgstr "Z-Far দেখুন:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Change" -msgstr "" +msgstr "রুপান্তরের পরিবর্তন" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Translate:" -msgstr "" +msgstr "স্থানান্তর (Translate):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotate (deg.):" -msgstr "" +msgstr "ঘূর্ণন (ডিগ্রি):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scale (ratio):" -msgstr "" +msgstr "মাপন (অনুপাত):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Type" -msgstr "" +msgstr "রুপান্তরের ধরণ" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Pre" -msgstr "" +msgstr "পূর্ব (Pre)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Post" -msgstr "" +msgstr "পরবর্তী (Post)" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "ERROR: Couldn't load frame resource!" -msgstr "" +msgstr "সমস্যা: ফ্রেম রিসোর্স লোড করা সম্ভব হয়নি!" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" -msgstr "" +msgstr "ফ্রেম যোগ করুন" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" -msgstr "" +msgstr "রিসোর্স ক্লীপবোর্ড খালি অথবা কোনো টেক্সার নয়!" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Paste Frame" -msgstr "" +msgstr "ফ্রেম প্রতিলেপন করুন" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Empty" -msgstr "" +msgstr "খালি বস্তু যোগ করুন" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "অ্যানিমেশনের লুপ পরিবর্তন করুন" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation FPS" -msgstr "" +msgstr "অ্যানিমেশনের FPS পরিবর্তন করুন" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "(empty)" -msgstr "" +msgstr "(খালি/শূন্য)" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations" -msgstr "" +msgstr "অ্যানিমেশনসমূহ" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" -msgstr "" +msgstr "গতি (FPS):" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animation Frames" -msgstr "" +msgstr "অ্যানিমেশনের ফ্রেমসমূহ" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" -msgstr "" +msgstr "খালি বস্তু যুক্ত করুন (পূর্বে)" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (After)" -msgstr "" +msgstr "খালি বস্তু যুক্ত করুন (পরে)" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Up" -msgstr "" +msgstr "উপরে" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Down" -msgstr "" +msgstr "নীচে" #: tools/editor/plugins/style_box_editor_plugin.cpp msgid "StyleBox Preview:" -msgstr "" +msgstr "StyleBox প্রিভিউ:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" -msgstr "" +msgstr "স্ন্যাপ মোড:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "<None>" -msgstr "" +msgstr "<নান/কিছুই না>" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "" +msgstr "পিক্সেল স্ন্যাপ" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Grid Snap" -msgstr "" +msgstr "গ্রিড স্ন্যাপ" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" -msgstr "" +msgstr "স্বয়ংক্রিয় টুকরো" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Offset:" -msgstr "" +msgstr "অফসেট/ভারসাম্য:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Step:" -msgstr "" +msgstr "পদক্ষেপ:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Separation:" -msgstr "" +msgstr "বিচ্ছেদ:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Texture Region" -msgstr "" +msgstr "গঠনবিন্যাসের এলাকা" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Texture Region Editor" -msgstr "" +msgstr "গঠনবিন্যাসের এলাকা এডিটর" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Can't save theme to file:" -msgstr "" +msgstr "থিমটি ফাইলে সংরক্ষণ করা সম্ভব হয়নি:" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add All Items" -msgstr "" +msgstr "সকল বস্তু যোগ করুন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add All" -msgstr "" +msgstr "সবগুলি যোগ করুন" #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Item" -msgstr "" +msgstr "বস্তু অপসারণ করুন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Theme" -msgstr "" +msgstr "থিম" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" -msgstr "" +msgstr "ক্লাসের আইটেম যোগ করুন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Remove Class Items" -msgstr "" +msgstr "ক্লাসের আইটেম অপসারণ করুন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Create Empty Template" -msgstr "" +msgstr "খালি টেমপ্লেট তৈরি করুন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Create Empty Editor Template" -msgstr "" +msgstr "এডিটরের খালি টেমপ্লেট তৈরি করুন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" -msgstr "" +msgstr "CheckBox Radio১" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio2" -msgstr "" +msgstr "CheckBox Radio২" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Item" -msgstr "" +msgstr "বস্তু/আইটেম" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Check Item" -msgstr "" +msgstr "আইটেম চিহ্নিত করুন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Checked Item" -msgstr "" +msgstr "চিহ্নিত আইটেম" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Has" -msgstr "" +msgstr "আছে" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Many" -msgstr "" +msgstr "অনেক" #: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp msgid "Options" -msgstr "" +msgstr "সিদ্ধান্তসমূহ" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Have,Many,Several,Options!" -msgstr "" +msgstr "আছে,অনেক,একাধিক,সিদ্ধান্তসমূহ!" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" -msgstr "" +msgstr "ট্যাব ১" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Tab 2" -msgstr "" +msgstr "ট্যাব ২" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Tab 3" -msgstr "" +msgstr "ট্যাব ৩" #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/project_settings.cpp tools/editor/scene_tree_editor.cpp #: tools/editor/script_editor_debugger.cpp msgid "Type:" -msgstr "" +msgstr "ধরণ:" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" -msgstr "" +msgstr "ডাটার ধরণ:" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Icon" -msgstr "" +msgstr "আইকন" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Style" -msgstr "" +msgstr "স্টাইল" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Color" -msgstr "" +msgstr "রঙ" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" -msgstr "" +msgstr "TileMap আঁকুন" #: tools/editor/plugins/tile_map_editor_plugin.cpp #: tools/editor/scene_tree_dock.cpp msgid "Duplicate" -msgstr "" +msgstr "প্রতিলিপি" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Erase TileMap" -msgstr "" +msgstr "TileMap মুছে ফেলুন" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Erase selection" -msgstr "" +msgstr "নির্বাচিতসমূহ মুছে ফেলুন" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Find tile" -msgstr "" +msgstr "টাইল খুঁজুন" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Transpose" -msgstr "" +msgstr "পক্ষান্তরিত করুন" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Mirror X" -msgstr "" +msgstr "প্রতিবিম্ব X" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Mirror Y" -msgstr "" +msgstr "প্রতিবিম্ব Y" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Bucket" -msgstr "" +msgstr "বাকেট্" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" -msgstr "" +msgstr "টাইল পছন্দ করুন" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Select" -msgstr "" +msgstr "নির্বাচন করুন" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 0 degrees" -msgstr "" +msgstr "০ ডিগ্রি ঘোরান্" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 90 degrees" -msgstr "" +msgstr "৯০ ডিগ্রি ঘোরান্" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 180 degrees" -msgstr "" +msgstr "১৮০ ডিগ্রি ঘোরান্" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 270 degrees" -msgstr "" +msgstr "২৭০ ডিগ্রি ঘোরান্" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Could not find tile:" -msgstr "" +msgstr "টাইলটি খুঁজে পাওয়া যায়নি:" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Item name or ID:" -msgstr "" +msgstr "আইটেমের নাম বা আইডি:" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene?" -msgstr "" +msgstr "দৃশ্য হতে তৈরি করবেন?" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from scene?" -msgstr "" +msgstr "দৃশ্য হতে একত্রিত করবেন?" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" -msgstr "" +msgstr "দৃশ্য হতে তৈরি করবেন" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from Scene" -msgstr "" +msgstr "দৃশ্য হতে একত্রিত করবেন" #: tools/editor/plugins/tile_set_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Error" -msgstr "" +msgstr "সমস্যা/ভুল" #: tools/editor/project_export.cpp msgid "Edit Script Options" -msgstr "" +msgstr "স্ক্রিপ্ট-এর সিদ্ধান্তসমূহ সম্পাদন করুন" #: tools/editor/project_export.cpp msgid "Please export outside the project folder!" -msgstr "" +msgstr "অনুগ্রহ করে প্রকল্পের ফোল্ডারের বাইরে এক্সপোর্ট করুন!" #: tools/editor/project_export.cpp msgid "Error exporting project!" -msgstr "" +msgstr "প্রকল্প এক্সপোর্টে সমস্যা হয়েছে!" #: tools/editor/project_export.cpp msgid "Error writing the project PCK!" -msgstr "" +msgstr "প্রকল্পের PCK লিখতে সমস্যা হয়েছে!" #: tools/editor/project_export.cpp msgid "No exporter for platform '%s' yet." +msgstr "'%s' প্ল্যাটফর্মের জন্য এখনো কোনো এক্সপোর্টার নেই।" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "নতুন রিসোর্স তৈরি করুন" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "গ্রহণযোগ্য নাম" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" msgstr "" #: tools/editor/project_export.cpp -msgid "Include" +#, fuzzy +msgid "Organization" +msgstr "ট্র্যানজিশন/স্থানান্তরণ" + +#: tools/editor/project_export.cpp +msgid "City" msgstr "" #: tools/editor/project_export.cpp -msgid "Change Image Group" +#, fuzzy +msgid "State" +msgstr "অবস্থা:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" msgstr "" #: tools/editor/project_export.cpp -msgid "Group name can't be empty!" +msgid "User alias" msgstr "" #: tools/editor/project_export.cpp -msgid "Invalid character in group name!" +#, fuzzy +msgid "Password" +msgstr "পাসওয়ার্ড:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "গ্রহনযোগ্য অক্ষরসমূহ:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "নতুন নাম:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" msgstr "" #: tools/editor/project_export.cpp -msgid "Group name already exists!" +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" msgstr "" #: tools/editor/project_export.cpp -msgid "Add Image Group" +msgid "Fill Keystore/Release User and Release Password" msgstr "" #: tools/editor/project_export.cpp +msgid "Include" +msgstr "অন্তর্ভুক্ত করুন" + +#: tools/editor/project_export.cpp +msgid "Change Image Group" +msgstr "ছবির গ্রুপ পরিবর্তন করুন" + +#: tools/editor/project_export.cpp +msgid "Group name can't be empty!" +msgstr "গ্রুপের নাম খালি হতে পারবে না!" + +#: tools/editor/project_export.cpp +msgid "Invalid character in group name!" +msgstr "গ্রুপের নামে অগ্রহনযোগ্য অক্ষর!" + +#: tools/editor/project_export.cpp +msgid "Group name already exists!" +msgstr "গ্রুপের নাম ইতিমধ্যেই আছে!" + +#: tools/editor/project_export.cpp +msgid "Add Image Group" +msgstr "ছবির গ্রুপ যোগ করুন" + +#: tools/editor/project_export.cpp msgid "Delete Image Group" -msgstr "" +msgstr "ছবির গ্রুপ অপসারণ করুন" #: tools/editor/project_export.cpp msgid "Atlas Preview" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলী প্রিভিউ" #: tools/editor/project_export.cpp msgid "Project Export Settings" -msgstr "" +msgstr "প্রকল্প এক্সপোর্ট-এর সেটিংস" #: tools/editor/project_export.cpp msgid "Target" -msgstr "" +msgstr "টার্গেট" #: tools/editor/project_export.cpp msgid "Export to Platform" -msgstr "" +msgstr "প্লাটফর্মে এক্সপোর্ট করুন" #: tools/editor/project_export.cpp msgid "Resources" -msgstr "" +msgstr "রিসোর্সসমূহ" #: tools/editor/project_export.cpp msgid "Export selected resources (including dependencies)." -msgstr "" +msgstr "নির্বাচিত রিসোর্সসমূহ এক্সপোর্ট করুন (ডিপেন্ডেন্সী সহ)।" #: tools/editor/project_export.cpp msgid "Export all resources in the project." -msgstr "" +msgstr "প্রকল্পের সকল রিসোর্স এক্সপোর্ট করুন।" #: tools/editor/project_export.cpp msgid "Export all files in the project directory." -msgstr "" +msgstr "প্রকল্পের পথে সকল ফাইল এক্সপোর্ট করুন।" #: tools/editor/project_export.cpp msgid "Export Mode:" -msgstr "" +msgstr "এক্সপোর্ট মোড:" #: tools/editor/project_export.cpp msgid "Resources to Export:" -msgstr "" +msgstr "এক্সপোর্টের জন্য রিসোর্স:" #: tools/editor/project_export.cpp msgid "Action" -msgstr "" +msgstr "প্রক্রিয়া/অ্যাকশন" #: tools/editor/project_export.cpp msgid "" "Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):" msgstr "" +"রিসোর্স-নয় এমন ফাইল এক্সপোর্ট করার ফিল্টারসমূহ (কমা-বিভক্ত, যেমন: *.json, *.txt):" #: tools/editor/project_export.cpp msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):" msgstr "" +"এক্সপোর্ট (export) হতে বর্জনকৃত ফিল্টারসমূহ (filter) (কমা-বিভক্ত, যেমন: *.json, *." +"txt):" #: tools/editor/project_export.cpp msgid "Convert text scenes to binary on export." -msgstr "" +msgstr "এক্সপর্টের সময় টেক্সট দৃশ্যগুলোকে বাইনারিতে রুপান্তর করুন।" #: tools/editor/project_export.cpp msgid "Images" -msgstr "" +msgstr "ছবিসমূহ" #: tools/editor/project_export.cpp msgid "Keep Original" -msgstr "" +msgstr "মূলটিই (অরিজিনাল) রাখুন" #: tools/editor/project_export.cpp msgid "Compress for Disk (Lossy, WebP)" -msgstr "" +msgstr "ডিস্কের জন্য সংকুচিত করুন (ধ্বংসাত্মক, WebP)" #: tools/editor/project_export.cpp msgid "Compress for RAM (BC/PVRTC/ETC)" -msgstr "" +msgstr "RAM-এর জন্য সংকুচিত করুন (BC/PVRTC/ETC)" #: tools/editor/project_export.cpp msgid "Convert Images (*.png):" -msgstr "" +msgstr "ছবিসমূহ রূপান্তর করুন (*.png):" #: tools/editor/project_export.cpp msgid "Compress for Disk (Lossy) Quality:" -msgstr "" +msgstr "ডিস্ক-এর জন্য সংকুচিত করুন (ধ্বংসাত্মক গুণের):" #: tools/editor/project_export.cpp msgid "Shrink All Images:" -msgstr "" +msgstr "সকল ছবি সংকুচিত করুন:" #: tools/editor/project_export.cpp msgid "Compress Formats:" -msgstr "" +msgstr "ধরণসমূহ সংকোচন করুন:" #: tools/editor/project_export.cpp msgid "Image Groups" -msgstr "" +msgstr "ছবির গ্রুপসমূহ" #: tools/editor/project_export.cpp msgid "Groups:" -msgstr "" +msgstr "গ্রুপসমূহ:" #: tools/editor/project_export.cpp msgid "Compress Disk" -msgstr "" +msgstr "ডিস্ক সঙ্কোচন" #: tools/editor/project_export.cpp msgid "Compress RAM" -msgstr "" +msgstr "RAM সঙ্কোচন" #: tools/editor/project_export.cpp msgid "Compress Mode:" -msgstr "" +msgstr "সঙ্কোচন মোড:" #: tools/editor/project_export.cpp msgid "Lossy Quality:" -msgstr "" +msgstr "ধ্বংসাত্মক গুণের:" #: tools/editor/project_export.cpp msgid "Atlas:" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলী:" #: tools/editor/project_export.cpp msgid "Shrink By:" -msgstr "" +msgstr "সঙ্কোচন দ্বারা:" #: tools/editor/project_export.cpp msgid "Preview Atlas" -msgstr "" +msgstr "এটলাস/মানচিত্রাবলী প্রিভিউ" #: tools/editor/project_export.cpp msgid "Image Filter:" -msgstr "" +msgstr "ছবির ফিল্টার:" #: tools/editor/project_export.cpp msgid "Images:" -msgstr "" +msgstr "ছবিসমূহ:" #: tools/editor/project_export.cpp msgid "Select None" -msgstr "" +msgstr "কোনোটাই নির্বাচন করবেন না" #: tools/editor/project_export.cpp msgid "Group" -msgstr "" +msgstr "গ্রুপ" #: tools/editor/project_export.cpp msgid "Samples" -msgstr "" +msgstr "নমুনাসমূহ" #: tools/editor/project_export.cpp msgid "Sample Conversion Mode: (.wav files):" -msgstr "" +msgstr "নমুনা রূপান্তর মোড: (.wav ফাইল):" #: tools/editor/project_export.cpp msgid "Keep" -msgstr "" +msgstr "রাখুন" #: tools/editor/project_export.cpp msgid "Compress (RAM - IMA-ADPCM)" -msgstr "" +msgstr "সঙ্কোচন (RAM - IMA-ADPCM)" #: tools/editor/project_export.cpp msgid "Sampling Rate Limit (Hz):" -msgstr "" +msgstr "আদর্শ রেট লিমিট (Hz):" #: tools/editor/project_export.cpp msgid "Trim" -msgstr "" +msgstr "ছাঁটা" #: tools/editor/project_export.cpp msgid "Trailing Silence:" -msgstr "" +msgstr "পরিশিষ্ট নীরবতা:" #: tools/editor/project_export.cpp msgid "Script" -msgstr "" +msgstr "স্ক্রিপ্ট" #: tools/editor/project_export.cpp msgid "Script Export Mode:" -msgstr "" +msgstr "স্ক্রিপ্ট এক্সপোর্ট মোড:" #: tools/editor/project_export.cpp msgid "Text" -msgstr "" +msgstr "টেক্সট" #: tools/editor/project_export.cpp msgid "Compiled" -msgstr "" +msgstr "কম্পাইল্ড" #: tools/editor/project_export.cpp msgid "Encrypted (Provide Key Below)" -msgstr "" +msgstr "এনক্রিপ্ট করুন (নীচে কী/চাবি দিন)" #: tools/editor/project_export.cpp msgid "Script Encryption Key (256-bits as hex):" -msgstr "" +msgstr "স্ক্রিপ্ট এনক্রিপশন কী/চাবি (২৫৬-বিটস হেক্স):" #: tools/editor/project_export.cpp msgid "Export PCK/Zip" -msgstr "" +msgstr "এক্সপোর্ট PCK/Zip" #: tools/editor/project_export.cpp msgid "Export Project PCK" -msgstr "" +msgstr "প্রকল্পের PCK এক্সপোর্ট করুন" #: tools/editor/project_export.cpp msgid "Export.." -msgstr "" +msgstr "এক্সপোর্ট.." #: tools/editor/project_export.cpp msgid "Project Export" -msgstr "" +msgstr "এক্সপোর্ট প্রকল্প" #: tools/editor/project_export.cpp msgid "Export Preset:" -msgstr "" +msgstr "এক্সপোর্টের প্রিসেট:" #: tools/editor/project_manager.cpp msgid "Invalid project path, the path must exist!" -msgstr "" +msgstr "অকার্যকর প্রকল্পের পথ, পথটি অবশ্যই বিদ্যমান হতে হবে!" #: tools/editor/project_manager.cpp msgid "Invalid project path, engine.cfg must not exist." -msgstr "" +msgstr "অকার্যকর প্রকল্পের পথ, engine.cfg অবশ্যই অনুপস্থিত হতে হবে।" #: tools/editor/project_manager.cpp msgid "Invalid project path, engine.cfg must exist." -msgstr "" +msgstr "অকার্যকর প্রকল্পের পথ, engine.cfg অবশ্যই উপস্থিত হতে হবে।" #: tools/editor/project_manager.cpp msgid "Imported Project" -msgstr "" +msgstr "প্রকল্প ইম্পোর্ট করা হয়েছে" #: tools/editor/project_manager.cpp msgid "Invalid project path (changed anything?)." -msgstr "" +msgstr "অকার্যকর প্রকল্পের পথ (কোনোকিছু পরিবর্তন করেছেন?)।" #: tools/editor/project_manager.cpp msgid "Couldn't create engine.cfg in project path." -msgstr "" +msgstr "প্রকল্পের পথে engine.cfg তৈরি করা সম্ভব হয়নি।" #: tools/editor/project_manager.cpp msgid "The following files failed extraction from package:" -msgstr "" +msgstr "প্যাকেজ হতে নীম্নোক্ত ফাইলসমূহ এক্সট্রাক্ট করা অসফল হয়েছে:" #: tools/editor/project_manager.cpp msgid "Package Installed Successfully!" -msgstr "" +msgstr "প্যাকেজ ইন্সটল সফল হয়েছে!" #: tools/editor/project_manager.cpp msgid "Import Existing Project" -msgstr "" +msgstr "বিদ্যমান প্রকল্প ইম্পোর্ট করুন" #: tools/editor/project_manager.cpp msgid "Project Path (Must Exist):" -msgstr "" +msgstr "প্রকল্পের পথ (অবশ্যই বিদ্যমান হতে হবে):" #: tools/editor/project_manager.cpp msgid "Project Name:" -msgstr "" +msgstr "প্রকল্পের নাম:" #: tools/editor/project_manager.cpp msgid "Create New Project" -msgstr "" +msgstr "নতুন প্রকল্প তৈরি করুন" #: tools/editor/project_manager.cpp msgid "Project Path:" -msgstr "" +msgstr "প্রকল্পের পথ:" #: tools/editor/project_manager.cpp msgid "Install Project:" -msgstr "" +msgstr "প্রকল্প ইন্সটল করুন:" #: tools/editor/project_manager.cpp msgid "Install" -msgstr "" +msgstr "ইন্সটল" #: tools/editor/project_manager.cpp msgid "Browse" -msgstr "" +msgstr "ব্রাউস" #: tools/editor/project_manager.cpp msgid "New Game Project" -msgstr "" +msgstr "নতুন গেম প্রকল্প" #: tools/editor/project_manager.cpp msgid "That's a BINGO!" -msgstr "" +msgstr "দারুণ খবর!" #: tools/editor/project_manager.cpp msgid "Unnamed Project" -msgstr "" +msgstr "নামহীন প্রকল্প" #: tools/editor/project_manager.cpp msgid "Are you sure to open more than one project?" -msgstr "" +msgstr "একধিক প্রকল্প খোলায় আপনি সুনিশ্চিত?" #: tools/editor/project_manager.cpp msgid "Are you sure to run more than one project?" -msgstr "" +msgstr "একধিক প্রকল্প চালানোয় আপনি সুনিশ্চিত?" #: tools/editor/project_manager.cpp msgid "Remove project from the list? (Folder contents will not be modified)" -msgstr "" +msgstr "তালিকা হতে প্রকল্প অপসারণ করবেন? (ফোল্ডারের বিষয়াদি পরিবর্তন হবে না)" #: tools/editor/project_manager.cpp msgid "" "You are about the scan %s folders for existing Godot projects. Do you " "confirm?" msgstr "" +"বিদ্যমান Godot প্রজেক্টের খোঁজে আপনি %s ফোল্ডারসমূহ স্ক্যান করতে যাচ্ছেন। আপনি কি " +"সুনিশ্চিত?" #: tools/editor/project_manager.cpp msgid "Project Manager" -msgstr "" +msgstr "প্রকল্প ম্যানেজার" #: tools/editor/project_manager.cpp msgid "Project List" -msgstr "" +msgstr "প্রকল্পের তালিকা" #: tools/editor/project_manager.cpp msgid "Run" -msgstr "" +msgstr "চালান" #: tools/editor/project_manager.cpp msgid "Scan" -msgstr "" +msgstr "স্ক্যান" #: tools/editor/project_manager.cpp msgid "Select a Folder to Scan" -msgstr "" +msgstr "স্ক্যান করার জন্য ফোল্ডার নির্বাচন করুন" #: tools/editor/project_manager.cpp msgid "New Project" -msgstr "" +msgstr "নতুন প্রকল্প" #: tools/editor/project_manager.cpp msgid "Exit" -msgstr "" +msgstr "প্রস্থান করুন" #: tools/editor/project_settings.cpp msgid "Key " -msgstr "" +msgstr "কী/চাবি " #: tools/editor/project_settings.cpp msgid "Joy Button" -msgstr "" +msgstr "জয়স্টিক বোতাম" #: tools/editor/project_settings.cpp msgid "Joy Axis" -msgstr "" +msgstr "জয়স্টিক অক্ষ" #: tools/editor/project_settings.cpp msgid "Mouse Button" -msgstr "" +msgstr "মাউসের বোতাম" #: tools/editor/project_settings.cpp msgid "Invalid action (anything goes but '/' or ':')." -msgstr "" +msgstr "অকার্যকর অ্যাকশন ('/' বা ':' ছাড়া কিছুই যাবে না)।" #: tools/editor/project_settings.cpp msgid "Action '%s' already exists!" -msgstr "" +msgstr "'%s' অ্যাকশন ইতিমধ্যেই বিদ্যমান!" #: tools/editor/project_settings.cpp msgid "Rename Input Action Event" -msgstr "" +msgstr "ইনপুট অ্যাকশন ইভেন্ট পুনঃনামকরণ করুন" #: tools/editor/project_settings.cpp msgid "Add Input Action Event" -msgstr "" +msgstr "ইনপুট অ্যাকশন ইভেন্ট যোগ করুন" #: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp msgid "Control+" -msgstr "" +msgstr "কন্ট্রোল+" #: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp msgid "Press a Key.." -msgstr "" +msgstr "যেকোনো কী/চাবি চাপুন.." #: tools/editor/project_settings.cpp msgid "Mouse Button Index:" -msgstr "" +msgstr "মাউসের বোতাম ইন্ডেক্স:" #: tools/editor/project_settings.cpp msgid "Left Button" -msgstr "" +msgstr "বাম বোতাম" #: tools/editor/project_settings.cpp msgid "Right Button" -msgstr "" +msgstr "ডান বোতাম" #: tools/editor/project_settings.cpp msgid "Middle Button" -msgstr "" +msgstr "মধ্য বোতাম" #: tools/editor/project_settings.cpp msgid "Wheel Up Button" -msgstr "" +msgstr "চাকা উপরে তোলার বোতাম" #: tools/editor/project_settings.cpp msgid "Wheel Down Button" -msgstr "" +msgstr "চাকা নিচে নামানোর বোতাম" #: tools/editor/project_settings.cpp msgid "Button 6" -msgstr "" +msgstr "বোতাম ৬" #: tools/editor/project_settings.cpp msgid "Button 7" -msgstr "" +msgstr "বোতাম ৭" #: tools/editor/project_settings.cpp msgid "Button 8" -msgstr "" +msgstr "বোতাম ৮" #: tools/editor/project_settings.cpp msgid "Button 9" -msgstr "" +msgstr "বোতাম ৯" #: tools/editor/project_settings.cpp msgid "Joystick Axis Index:" -msgstr "" +msgstr "জয়স্টিক অক্ষ ইন্ডেক্স:" #: tools/editor/project_settings.cpp msgid "Joystick Button Index:" -msgstr "" +msgstr "জয়স্টিক বোতাম ইন্ডেক্স:" #: tools/editor/project_settings.cpp msgid "Add Input Action" -msgstr "" +msgstr "ইনপুট অ্যাকশন যোগ করুন" #: tools/editor/project_settings.cpp msgid "Erase Input Action Event" -msgstr "" - -#: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" +msgstr "ইনপুট অ্যাকশন ইভেন্ট মুছে ফেলুন" #: tools/editor/project_settings.cpp msgid "Error saving settings." -msgstr "" +msgstr "সংরক্ষণে সমস্যা হয়েছে।" #: tools/editor/project_settings.cpp msgid "Settings saved OK." -msgstr "" +msgstr "সেটিংস সংরক্ষণ সফল হয়েছে।" #: tools/editor/project_settings.cpp msgid "Add Translation" -msgstr "" +msgstr "অনুবাদ সংযোগ করুন" #: tools/editor/project_settings.cpp msgid "Remove Translation" -msgstr "" +msgstr "অনুবাদ অপসারণ করুন" #: tools/editor/project_settings.cpp msgid "Add Remapped Path" -msgstr "" +msgstr "পুনঃ-চিত্রাঙ্কিত পথ যোগ করুন" #: tools/editor/project_settings.cpp msgid "Resource Remap Add Remap" -msgstr "" +msgstr "রিসোর্স পুনঃ-চিত্রাঙ্কিত করে যুক্ত করুন" #: tools/editor/project_settings.cpp msgid "Change Resource Remap Language" -msgstr "" +msgstr "রিসোর্স পুনঃ-নকশার ভাষা পরিবর্তন করুন" #: tools/editor/project_settings.cpp msgid "Remove Resource Remap" -msgstr "" +msgstr "রিসোর্সের পুনঃ-নকশা অপসারণ করুন" #: tools/editor/project_settings.cpp msgid "Remove Resource Remap Option" -msgstr "" +msgstr "রিসোর্সের পুনঃ-নকশার সিদ্ধান্ত অপসারণ করুন" #: tools/editor/project_settings.cpp msgid "Project Settings (engine.cfg)" -msgstr "" +msgstr "প্রকল্পের সেটিংস (engine.cfg)" #: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp msgid "General" -msgstr "" +msgstr "জেনেরাল" #: tools/editor/project_settings.cpp tools/editor/property_editor.cpp msgid "Property:" -msgstr "" +msgstr "প্রপার্টি:" #: tools/editor/project_settings.cpp msgid "Del" -msgstr "" +msgstr "ডিলিট/অপসারণ" #: tools/editor/project_settings.cpp msgid "Copy To Platform.." -msgstr "" +msgstr "প্লাটফর্মে প্রতিলিপি করুন.." #: tools/editor/project_settings.cpp msgid "Input Map" -msgstr "" +msgstr "ইনপুট ম্যাপ/নকশা" #: tools/editor/project_settings.cpp msgid "Action:" -msgstr "" +msgstr "অ্যাকশন:" #: tools/editor/project_settings.cpp msgid "Device:" -msgstr "" +msgstr "ডিভাইস:" #: tools/editor/project_settings.cpp msgid "Index:" -msgstr "" +msgstr "ইন্ডেক্স:" #: tools/editor/project_settings.cpp msgid "Localization" -msgstr "" +msgstr "স্থানীয়করণ" #: tools/editor/project_settings.cpp msgid "Translations" -msgstr "" +msgstr "অনুবাদসমূহ" #: tools/editor/project_settings.cpp msgid "Translations:" -msgstr "" +msgstr "অনুবাদসমূহ:" #: tools/editor/project_settings.cpp msgid "Add.." -msgstr "" +msgstr "সংযোগ.." #: tools/editor/project_settings.cpp msgid "Remaps" -msgstr "" +msgstr "পুনঃনকশাসমূহ" #: tools/editor/project_settings.cpp msgid "Resources:" -msgstr "" +msgstr "রিসোর্সসমূহ:" #: tools/editor/project_settings.cpp msgid "Remaps by Locale:" -msgstr "" +msgstr "ঘটনাস্থল দ্বারা পুনঃনকশা:" #: tools/editor/project_settings.cpp msgid "Locale" -msgstr "" +msgstr "ঘটনাস্থল" #: tools/editor/project_settings.cpp msgid "AutoLoad" -msgstr "" +msgstr "স্বয়ংক্রিয়-লোড" #: tools/editor/project_settings.cpp msgid "Plugins" -msgstr "" +msgstr "প্লাগইন-সমূহ" #: tools/editor/property_editor.cpp msgid "Preset.." -msgstr "" +msgstr "প্রিসেট.." #: tools/editor/property_editor.cpp msgid "Ease In" -msgstr "" +msgstr "আন্ত-সহজাগমন" #: tools/editor/property_editor.cpp msgid "Ease Out" -msgstr "" +msgstr "বহিঃ-সহজাগমন" #: tools/editor/property_editor.cpp msgid "Zero" -msgstr "" +msgstr "শূন্য" #: tools/editor/property_editor.cpp msgid "Easing In-Out" -msgstr "" +msgstr "আগমন-গমন সহজ/আলগা করন" #: tools/editor/property_editor.cpp msgid "Easing Out-In" -msgstr "" +msgstr "গমন-আগমন সহজ/আলগা করন" #: tools/editor/property_editor.cpp msgid "File.." -msgstr "" +msgstr "ফাইল.." #: tools/editor/property_editor.cpp msgid "Dir.." -msgstr "" +msgstr "পথ.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" -msgstr "" +msgstr "লোড" #: tools/editor/property_editor.cpp msgid "Assign" -msgstr "" +msgstr "নিযুক্ত" #: tools/editor/property_editor.cpp msgid "New Script" -msgstr "" +msgstr "নতুন স্ক্রিপ্ট" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" -msgstr "" +msgstr "ফাইল লোডে সমস্যা: রিসোর্স নয়!" #: tools/editor/property_editor.cpp msgid "Couldn't load image" -msgstr "" +msgstr "ছবি লোড অসম্ভব হয়েছে" #: tools/editor/property_editor.cpp msgid "Bit %d, val %d." -msgstr "" +msgstr "বিট %d, মান %d।" #: tools/editor/property_editor.cpp msgid "On" -msgstr "" +msgstr "চালু" #: tools/editor/property_editor.cpp msgid "Properties:" -msgstr "" - -#: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" +msgstr "প্রোপার্টি-সমূহ:" #: tools/editor/property_editor.cpp msgid "Sections:" -msgstr "" +msgstr "অংশাদি:" #: tools/editor/property_selector.cpp msgid "Select Property" @@ -6226,207 +6394,195 @@ msgstr "মেথড/পদ্ধতি বাছাই করুন" #: tools/editor/pvrtc_compress.cpp msgid "Could not execute PVRTC tool:" -msgstr "" +msgstr "PVRTC সরঞ্জাম এক্সিকিউট করা সম্ভব হচ্ছে না:" #: tools/editor/pvrtc_compress.cpp msgid "Can't load back converted image using PVRTC tool:" -msgstr "" +msgstr "PVRTC সরঞ্জাম দ্বারা রূপান্তরিত ছবি পুনরায় লোড করা সম্ভব নয়:" #: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp msgid "Reparent Node" -msgstr "" +msgstr "নোডের নতুন অভিভাবক দান করুন" #: tools/editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" -msgstr "" +msgstr "নতুন অভিভাবকের স্থান (নতুন অভিভাবক নির্বাচন করুন):" #: tools/editor/reparent_dialog.cpp msgid "Keep Global Transform" -msgstr "" +msgstr "সার্বজনীন রূপান্তর রাখুন" #: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "" +msgstr "নতুন অভিভাবক দান করুন" #: tools/editor/resources_dock.cpp msgid "Create New Resource" -msgstr "" +msgstr "নতুন রিসোর্স তৈরি করুন" #: tools/editor/resources_dock.cpp msgid "Open Resource" -msgstr "" +msgstr "রিসোর্স খুলুন" #: tools/editor/resources_dock.cpp msgid "Save Resource" -msgstr "" +msgstr "রিসোর্স সংরক্ষণ করুন" #: tools/editor/resources_dock.cpp msgid "Resource Tools" -msgstr "" +msgstr "রিসোর্স-এর সরঞ্জামসমূহ" #: tools/editor/resources_dock.cpp msgid "Make Local" -msgstr "" +msgstr "স্থানীয় করুন" #: tools/editor/run_settings_dialog.cpp msgid "Run Mode:" -msgstr "" +msgstr "চালানোর মোড:" #: tools/editor/run_settings_dialog.cpp msgid "Current Scene" -msgstr "" +msgstr "বর্তমান দৃশ্য" #: tools/editor/run_settings_dialog.cpp msgid "Main Scene" -msgstr "" +msgstr "প্রধান দৃশ্য" #: tools/editor/run_settings_dialog.cpp msgid "Main Scene Arguments:" -msgstr "" +msgstr "প্রধান দৃশ্যের মান/আর্গুমেন্ট-সমূহ:" #: tools/editor/run_settings_dialog.cpp msgid "Scene Run Settings" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" +msgstr "দৃশ্য চালানোর সেটিংস" #: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." -msgstr "" +msgstr "দৃশ্যসমূহ ইন্সট্যান্স করার মতো কোনো অভিভাবক নেই।" #: tools/editor/scene_tree_dock.cpp msgid "Error loading scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" +msgstr "%s হতে দৃশ্য লোড করতে সমস্যা হয়েছে" #: tools/editor/scene_tree_dock.cpp msgid "Ok" -msgstr "" +msgstr "ঠিক আছে" #: tools/editor/scene_tree_dock.cpp msgid "" "Cannot instance the scene '%s' because the current scene exists within one " "of its nodes." msgstr "" +"বর্তমান দৃশ্যটি '%s' দৃশ্যের একটি নোডের মাঝে অবস্থান করায় দৃশ্যটিকে ইনস্ট্যান্স করা " +"সম্ভব হচ্ছে না।" #: tools/editor/scene_tree_dock.cpp msgid "Instance Scene(s)" -msgstr "" +msgstr "দৃশ্য(সমূহ) ইন্সট্যান্স করুন" #: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." -msgstr "" +msgstr "শাখার মূলে এটি করা সম্ভব হবে না।" #: tools/editor/scene_tree_dock.cpp msgid "Move Node In Parent" -msgstr "" +msgstr "অভিভাবকে নোড সরান" #: tools/editor/scene_tree_dock.cpp msgid "Move Nodes In Parent" -msgstr "" +msgstr "অভিভাবকে নোডসমূহ সরান" #: tools/editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" -msgstr "" +msgstr "নোড(সমূহ) প্রতিলিপি করুন" #: tools/editor/scene_tree_dock.cpp msgid "Delete Node(s)?" -msgstr "" +msgstr "নোড(সমূহ) অপসারণ করবেন?" #: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done without a scene." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" +msgstr "দৃশ্য ছাড়া এটি করা সম্ভব হবে না।" #: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." -msgstr "" +msgstr "ইন্সট্যান্স করা দৃশ্যে এটি করা সম্ভব হবে না।" #: tools/editor/scene_tree_dock.cpp msgid "Save New Scene As.." -msgstr "" +msgstr "নতুন দৃশ্য এইরূপে সংরক্ষণ করুন.." #: tools/editor/scene_tree_dock.cpp msgid "Makes Sense!" -msgstr "" +msgstr "অর্থপূর্ন!" #: tools/editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" -msgstr "" +msgstr "বাহিরের দৃশ্যের নোডে এটি করা সম্ভব হবে না!" #: tools/editor/scene_tree_dock.cpp msgid "Can't operate on nodes the current scene inherits from!" -msgstr "" +msgstr "বর্তমান দৃশ্য যার হতে উৎপত্তি হয় তার নোডে এটি করা সম্ভব হবে না!" #: tools/editor/scene_tree_dock.cpp msgid "Remove Node(s)" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" +msgstr "নোড(সমূহ) অপসারণ করুন" #: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." msgstr "" +"নতুন দৃশ্যটি সংরক্ষণ করা সম্ভব হচ্ছে না। সম্ভবত যেসবের (ইন্সট্যান্স) উপর নির্ভর করছে " +"তাদের সন্তুষ্ট করা সম্ভব হচ্ছে না।" #: tools/editor/scene_tree_dock.cpp msgid "Error saving scene." -msgstr "" +msgstr "দৃশ্য সংরক্ষণে সমস্যা হয়েছে।" #: tools/editor/scene_tree_dock.cpp msgid "Error duplicating scene to save it." -msgstr "" +msgstr "দৃশ্য প্রতিলিপি করে সংরক্ষণে সমস্যা হয়েছে।" #: tools/editor/scene_tree_dock.cpp msgid "Edit Groups" -msgstr "" +msgstr "গ্রুপসমূহ সম্পাদন করুন" #: tools/editor/scene_tree_dock.cpp msgid "Edit Connections" -msgstr "" +msgstr "সংযোগসমূহ সম্পাদন করুন" #: tools/editor/scene_tree_dock.cpp msgid "Delete Node(s)" -msgstr "" +msgstr "নোড(সমূহ) অপসারণ করুন" #: tools/editor/scene_tree_dock.cpp msgid "Add Child Node" -msgstr "" +msgstr "শীষ্য নোড তৈরি করুন" #: tools/editor/scene_tree_dock.cpp msgid "Instance Child Scene" -msgstr "" +msgstr "শীষ্য নোড ইন্সট্যান্স করুন" #: tools/editor/scene_tree_dock.cpp msgid "Change Type" -msgstr "" +msgstr "ধরণ পরিবর্তন করুন" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +msgid "Attach Script" +msgstr "স্ক্রিপ্ট সংযুক্ত করুন" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "স্ক্রিপ্ট পরিস্কার করুন" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" -msgstr "" +msgstr "দৃশ্য হতে একত্রিত করুন" #: tools/editor/scene_tree_dock.cpp msgid "Save Branch as Scene" -msgstr "" +msgstr "প্রশাখাকে দৃশ্য হিসেবে সংরক্ষণ করুন" #: tools/editor/scene_tree_dock.cpp msgid "Delete (No Confirm)" @@ -6434,279 +6590,283 @@ msgstr "অপসারণ করুন (নিশ্চয়তাকরণ ন #: tools/editor/scene_tree_dock.cpp msgid "Add/Create a New Node" -msgstr "" +msgstr "অপসারণ করুন (নিশ্চয়তাকরণ নেই)" #: tools/editor/scene_tree_dock.cpp msgid "" "Instance a scene file as a Node. Creates an inherited scene if no root node " "exists." msgstr "" +"একটি দৃশ্য ফাইলকে নোড হিসেবে ইন্সট্যান্স করুন। যদি কোনো মূল নোড না থাকে একটি " +"উত্তরাধিকারী দৃশ্য তৈরি করে।" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." -msgstr "" +msgid "Attach a new or existing script for the selected node." +msgstr "একটি নতুন বা বিদ্যমান স্ক্রিপ্ট নির্বাচিত নোডে সংযুক্ত করুন।" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "নির্বাচিত নোড হতে একটি স্ক্রিপ্ট পরিস্কার করুন।" #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" -msgstr "" +msgstr "Spatial দৃশ্যমানতা টগল করুন" #: tools/editor/scene_tree_editor.cpp msgid "Toggle CanvasItem Visible" -msgstr "" +msgstr "CanvasItem দৃশ্যমানতা টগল করুন" #: tools/editor/scene_tree_editor.cpp msgid "Instance:" -msgstr "" +msgstr "ইন্সট্যান্স:" #: tools/editor/scene_tree_editor.cpp msgid "Invalid node name, the following characters are not allowed:" -msgstr "" +msgstr "অগ্রহণযোগ্য নোডের নাম, নীম্নোক্ত অক্ষরসমূহ গ্রহণযোগ্য নয়:" #: tools/editor/scene_tree_editor.cpp msgid "Rename Node" -msgstr "" +msgstr "নোড পুনঃনামকরণ করুন" #: tools/editor/scene_tree_editor.cpp msgid "Scene Tree (Nodes):" -msgstr "" +msgstr "দৃশ্যের শাখা (নোডসমূহ):" #: tools/editor/scene_tree_editor.cpp msgid "Editable Children" -msgstr "" +msgstr "সম্পাদনযোগ্য অংশীদারীসমূহ" #: tools/editor/scene_tree_editor.cpp msgid "Load As Placeholder" -msgstr "" +msgstr "প্লেসহোল্ডার হিসেবে লোড করুন" #: tools/editor/scene_tree_editor.cpp msgid "Discard Instancing" -msgstr "" +msgstr "ইন্সট্যান্স করা বাতিল করুন" #: tools/editor/scene_tree_editor.cpp msgid "Open in Editor" -msgstr "" +msgstr "এডিটরে খুলুন" #: tools/editor/scene_tree_editor.cpp msgid "Clear Inheritance" -msgstr "" +msgstr "উত্তরাধিকারত্ব পরিস্কার করুন" #: tools/editor/scene_tree_editor.cpp msgid "Clear Inheritance? (No Undo!)" -msgstr "" +msgstr "উত্তরাধিকারত্ব পরিস্কার করবেন? (ফেরৎ পাবেন না!)" #: tools/editor/scene_tree_editor.cpp msgid "Clear!" -msgstr "" +msgstr "পরিস্কার করুন!" #: tools/editor/scene_tree_editor.cpp msgid "Select a Node" -msgstr "" +msgstr "একটি নোড নির্বাচন করুন" #: tools/editor/script_create_dialog.cpp msgid "Invalid parent class name" -msgstr "" +msgstr "অভিভাবকের অগ্রহণযোগ্য ক্লাস নাম" #: tools/editor/script_create_dialog.cpp msgid "Valid chars:" -msgstr "" +msgstr "গ্রহণযোগ্য অক্ষরসমূহ:" #: tools/editor/script_create_dialog.cpp msgid "Invalid class name" -msgstr "" +msgstr "অগ্রহণযোগ্য ক্লাস নাম" #: tools/editor/script_create_dialog.cpp msgid "Valid name" -msgstr "" +msgstr "গ্রহণযোগ্য নাম" #: tools/editor/script_create_dialog.cpp msgid "N/A" -msgstr "" +msgstr "না/আ" #: tools/editor/script_create_dialog.cpp msgid "Class name is invalid!" -msgstr "" +msgstr "ক্লাস নাম অগ্রহণযোগ্য!" #: tools/editor/script_create_dialog.cpp msgid "Parent class name is invalid!" -msgstr "" +msgstr "অভিভাবকের ক্লাস নাম অগ্রহণযোগ্য!" #: tools/editor/script_create_dialog.cpp msgid "Invalid path!" -msgstr "" +msgstr "অগ্রহণযোগ্য পথ!" #: tools/editor/script_create_dialog.cpp msgid "Could not create script in filesystem." -msgstr "" +msgstr "ফাইলসিস্টেমে স্ক্রিপ্ট তৈরি করা সম্ভব হয়নি।" + +#: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "%s হতে স্ক্রিপ্ট তুলতে/লোডে সমস্যা হয়েছে" #: tools/editor/script_create_dialog.cpp msgid "Path is empty" -msgstr "" +msgstr "পথটি খালি" #: tools/editor/script_create_dialog.cpp msgid "Path is not local" -msgstr "" +msgstr "পথটি স্থানীয় নয়" #: tools/editor/script_create_dialog.cpp msgid "Invalid base path" -msgstr "" +msgstr "বেস পথ অগ্রহণযোগ্য" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "" +msgid "Invalid extension" +msgstr "অগ্রহণযোগ্য এক্সটেনশন" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +msgid "Create new script" +msgstr "নতুন স্ক্রিপ্ট তৈরি করুন" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "" +msgid "Load existing script" +msgstr "বিদ্যমান স্ক্রিপ্ট লোড করুন" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" -msgstr "" +msgstr "ক্লাস নাম:" #: tools/editor/script_create_dialog.cpp msgid "Built-In Script" -msgstr "" +msgstr "পূর্বনির্মিত স্ক্রিপ্ট" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +msgid "Attach Node Script" +msgstr "নোড স্ক্রিপ্ট সংযুক্ত করুন" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" -msgstr "" +msgstr "বাইটস:" #: tools/editor/script_editor_debugger.cpp msgid "Warning" -msgstr "" +msgstr "সতর্কতা" #: tools/editor/script_editor_debugger.cpp msgid "Error:" -msgstr "" +msgstr "সমস্যা:" #: tools/editor/script_editor_debugger.cpp msgid "Source:" -msgstr "" +msgstr "উৎস:" #: tools/editor/script_editor_debugger.cpp msgid "Function:" -msgstr "" +msgstr "ফাংশন:" #: tools/editor/script_editor_debugger.cpp msgid "Errors" -msgstr "" +msgstr "সমস্যাসমূহ" #: tools/editor/script_editor_debugger.cpp msgid "Child Process Connected" -msgstr "" +msgstr "চাইল্ড প্রসেস সংযুক্ত হয়েছে" #: tools/editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" -msgstr "" +msgstr "পূর্ববর্তী ইন্সট্যান্স পরীক্ষা করুন" #: tools/editor/script_editor_debugger.cpp msgid "Inspect Next Instance" -msgstr "" +msgstr "পরবর্তী ইন্সট্যান্স পরীক্ষা করুন" #: tools/editor/script_editor_debugger.cpp msgid "Stack Frames" -msgstr "" +msgstr "ফ্রেমসমূহ স্তূপ করুন" #: tools/editor/script_editor_debugger.cpp msgid "Variable" -msgstr "" +msgstr "চলক/ভেরিয়েবল" #: tools/editor/script_editor_debugger.cpp msgid "Errors:" -msgstr "" +msgstr "সমস্যাসমূহ:" #: tools/editor/script_editor_debugger.cpp msgid "Stack Trace (if applicable):" -msgstr "" +msgstr "পদাঙ্ক স্তূপ করুন (প্রযোজ্য হলে):" #: tools/editor/script_editor_debugger.cpp msgid "Remote Inspector" -msgstr "" +msgstr "রিমোট পরীক্ষক" #: tools/editor/script_editor_debugger.cpp msgid "Live Scene Tree:" -msgstr "" +msgstr "দৃশ্যের সক্রিয় শাখা:" #: tools/editor/script_editor_debugger.cpp msgid "Remote Object Properties: " -msgstr "" +msgstr "রিমোট বস্তুর প্রোপার্টিস: " #: tools/editor/script_editor_debugger.cpp msgid "Profiler" -msgstr "" +msgstr "প্রোফাইলার" #: tools/editor/script_editor_debugger.cpp msgid "Monitor" -msgstr "" +msgstr "মনিটর" #: tools/editor/script_editor_debugger.cpp msgid "Value" -msgstr "" +msgstr "মান" #: tools/editor/script_editor_debugger.cpp msgid "Monitors" -msgstr "" +msgstr "মনিটরস" #: tools/editor/script_editor_debugger.cpp msgid "List of Video Memory Usage by Resource:" -msgstr "" +msgstr "রিসোর্স অনুসারে ভিডিও মেমোরির ব্যবহারের তালিকা করুন:" #: tools/editor/script_editor_debugger.cpp msgid "Total:" -msgstr "" +msgstr "সর্বমোট:" #: tools/editor/script_editor_debugger.cpp msgid "Video Mem" -msgstr "" +msgstr "ভিডিও মেমোরি" #: tools/editor/script_editor_debugger.cpp msgid "Resource Path" -msgstr "" +msgstr "রিসোর্স-এর পথ" #: tools/editor/script_editor_debugger.cpp msgid "Type" -msgstr "" +msgstr "ধরণ" #: tools/editor/script_editor_debugger.cpp msgid "Usage" -msgstr "" +msgstr "ব্যবহার" #: tools/editor/script_editor_debugger.cpp msgid "Misc" -msgstr "" +msgstr "বিবিধ" #: tools/editor/script_editor_debugger.cpp msgid "Clicked Control:" -msgstr "" +msgstr "ক্লিক-কৃত কন্ট্রোল:" #: tools/editor/script_editor_debugger.cpp msgid "Clicked Control Type:" -msgstr "" +msgstr "ক্লিক-কৃত কন্ট্রোলের ধরণ:" #: tools/editor/script_editor_debugger.cpp msgid "Live Edit Root:" -msgstr "" +msgstr "সক্রিয়ভাবে মূল সম্পাদন করুন:" #: tools/editor/script_editor_debugger.cpp msgid "Set From Tree" -msgstr "" +msgstr "শাখা হতে স্থাপন করুন" #: tools/editor/settings_config_dialog.cpp msgid "Shortcuts" -msgstr "" +msgstr "শর্টকাটসমূহ" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Light Radius" @@ -6743,3 +6903,33 @@ msgstr "Ray Shape এর দৈর্ঘ্য পরিবর্তন কর #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "Notifier এর সীমা পরিবর্তন করুন" + +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Notifier এর সীমা পরিবর্তন করুন" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance কোনো BakedLight রিসোর্স ধারণ করে না।" + +#~ msgid "Vertex" +#~ msgstr "ভারটেক্স" + +#~ msgid "Fragment" +#~ msgstr "ফ্রাগমেন্ট" + +#~ msgid "Lighting" +#~ msgstr "লাইটিং" + +#~ msgid "Toggle Persisting" +#~ msgstr "স্থায়ীয়তা টগল করুন" + +#~ msgid "Global" +#~ msgstr "সার্বজনীন" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "এর ধারক/বাহক অদৃশ্য হওয়ায় এই বস্তুটি দৃশ্যমান করা সম্ভব নয়। প্রথমে ধারক/বাহককে " +#~ "দৃশ্যমান করুন।" diff --git a/tools/translations/ca.po b/tools/translations/ca.po index 9922663465..266551ee60 100644 --- a/tools/translations/ca.po +++ b/tools/translations/ca.po @@ -1,5 +1,5 @@ # Catalan translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Roger BR <drai_kin@hotmail.com>, 2016. @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-09-11 09:26+0000\n" +"PO-Revision-Date: 2016-10-11 08:26+0000\n" "Last-Translator: Roger BR <drai_kin@hotmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.8\n" +"X-Generator: Weblate 2.9-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -34,12 +34,6 @@ msgid "step argument is zero!" msgstr "L'argument pas (step) és zero!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Script sense instància" @@ -231,19 +225,19 @@ msgstr "Transició" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "Seqüència" #: modules/visual_script/visual_script_editor.cpp msgid "Switch" -msgstr "" +msgstr "commutador" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Iterador" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "Mentre" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -256,12 +250,12 @@ msgstr "Crida" #: modules/visual_script/visual_script_editor.cpp msgid "Get" -msgstr "" +msgstr "Obtenir" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp msgid "Set" -msgstr "" +msgstr "Especifica" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp @@ -399,85 +393,91 @@ msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "premut" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "alliberat" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"No s'ha pogut llegir el certificat. Comproveu que tant el camí com la " +"contrasenya són correctes" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "" +msgstr "No s'ha pogut l'objecte signatura." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "No s'ha pogut crear el paquet signatura." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"No s'ha trobat cap plantilla.\n" +"Descarregueu i instal·leu alguna plantilla d'exportació." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "No s'ha trobat cap paquet de depuració personalitzat." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "No s'ha trobat cap paquet de llançament personalitzat." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Nom no vàlid." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "La mida de la lletra no és vàlida." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "" +msgstr "GUID d'editor no vàlid." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid background color." msgstr "Lletra personalitzada no vàlida." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "Imatge Store Logo no vàlida. La mida hauria de ser 50x50 ." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "" +msgstr "Imatge Logo quadrat 44x44 no vàlida. La mida hauria de ser 44x44." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "" +msgstr "Imatge Logo quadrat 71x71 no vàlida. La mida hauria de ser 71x71 ." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "" +msgstr "Imatge logo quadrat 150x150 no vàlida. La mida hauria de ser 150x150 ." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "" +msgstr "Imatge logo quadrat 310x310 no vàlida. La mida hauria de ser 310x310." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "" +msgstr "Imatge logo quadrat 310x150 no vàlida. La mida hauria de ser 310x150." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" +"Imatge de la pantalla de presentació no vàlida. La mida hauria de ser " +"620x300." #: scene/2d/animated_sprite.cpp msgid "" @@ -485,7 +485,7 @@ msgid "" "order for AnimatedSprite to display frames." msgstr "" "Un recurs del tipus SpriteFrames s'ha de crear or especificar en la " -"propietat \"Quadres (Frames)\" perquè AnimatedSprite pugui mostrar els " +"propietat \"Fotogrames (Frames)\" perquè AnimatedSprite pugui mostrar els " "quadres." #: scene/2d/canvas_modulate.cpp @@ -494,7 +494,7 @@ msgid "" "scenes). The first created one will work, while the rest will be ignored." msgstr "" "Només es permet un sol CanvasModulate per escena (o conjunt d'escenes " -"instanciades). El primer funcionara, mentre que la resta seran ignorats." +"instanciades). El primer funcionarà, mentre que la resta seran ignorats." #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -619,10 +619,6 @@ msgstr "" "VisibilityEnable2D funciona millor quan l'arrel de l'escena editada " "s'utilitza com a pare." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance no conté cap recurs BakedLight." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -702,7 +698,8 @@ msgstr "" msgid "Cancel" msgstr "Cancel·la" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "D'acord" @@ -1864,6 +1861,11 @@ msgid "Constants:" msgstr "Constants:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Descripció breu:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Descripció del mètode:" @@ -1931,7 +1933,9 @@ msgstr "Error en desar recurs!" msgid "Save Resource As.." msgstr "Desar Recurs com..." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Vaja..." @@ -2172,7 +2176,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Tria una Escena Principal" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Uf..." @@ -2879,6 +2885,7 @@ msgstr "Textures Font:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Camí de Destinació:" @@ -3113,6 +3120,11 @@ msgid "Auto" msgstr "Auto" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +#, fuzzy +msgid "Root Node Name:" +msgstr "Nom del node:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Manquen els següents Fitxers:" @@ -4013,6 +4025,50 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Canvia Tipus de la Matriu" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4878,18 +4934,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5652,6 +5696,69 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Crea una Carpeta" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Transició" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Estat:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Contrasenya:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Caràcters vàlids:" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6111,10 +6218,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "No s'ha pogut desar la configuració." @@ -6258,7 +6361,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6292,10 +6395,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6374,14 +6473,6 @@ msgid "Scene Run Settings" msgstr "Configuració d'Execució d'Escenes" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6390,10 +6481,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6432,10 +6519,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6460,10 +6543,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6502,8 +6581,14 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +#, fuzzy +msgid "Attach Script" +msgstr "Executa Script" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Executa Script" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6528,13 +6613,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6630,6 +6713,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Error carregant lletra." + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6642,16 +6730,18 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "Crea Subscripció" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "" +#, fuzzy +msgid "Load existing script" +msgstr "No s'ha pogut instanciar l'script:" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6662,8 +6752,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "Executa Script" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6829,6 +6920,20 @@ msgstr "" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance no conté cap recurs BakedLight." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "No es pot començar un camí per '/'. Els camins absoluts han de començar " +#~ "per 'res://', 'user://' o 'local://'" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/cs.po b/tools/translations/cs.po index 0975e3c550..4020725d74 100644 --- a/tools/translations/cs.po +++ b/tools/translations/cs.po @@ -1,5 +1,5 @@ # Czech translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Jan 'spl!te' Kondelík <j.kondelik@centrum.cz>, 2016. @@ -33,12 +33,6 @@ msgid "step argument is zero!" msgstr "" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Skript nemá instanci" @@ -395,76 +389,76 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Neplatný název." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "Neplatná velikost fontu." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -595,10 +589,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance neobsahuje zdroj BakedLight." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -679,7 +669,8 @@ msgstr "" msgid "Cancel" msgstr "Zrušit" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -1837,6 +1828,11 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Vytvořit odběr" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1904,7 +1900,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2129,7 +2127,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2809,6 +2809,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -3036,6 +3037,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3936,6 +3941,50 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Změnit typ hodnot pole" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4801,18 +4850,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5575,6 +5612,67 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Vytvořit složku" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Přechod" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Platné znaky:" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6034,10 +6132,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6181,7 +6275,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6214,10 +6308,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6296,14 +6386,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6312,10 +6394,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6354,10 +6432,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6382,10 +6456,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6424,10 +6494,15 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" msgstr "" #: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Vytvořit odběr" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "" @@ -6451,13 +6526,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6553,6 +6626,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Chyba nahrávání fontu." + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6565,15 +6643,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "Vytvořit odběr" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6585,7 +6664,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6751,3 +6830,10 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance neobsahuje zdroj BakedLight." diff --git a/tools/translations/da.po b/tools/translations/da.po index 3294ca2105..e0d4d9bd98 100644 --- a/tools/translations/da.po +++ b/tools/translations/da.po @@ -1,5 +1,5 @@ # Danish translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # David Lamhauge <davidlamhauge@gmail.com>, 2016. @@ -32,12 +32,6 @@ msgid "step argument is zero!" msgstr "trin argument er nul!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Ikke et script med en instans" @@ -396,76 +390,76 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Ugyldigt index egenskabsnavn." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "Ugyldig skriftstørrelse." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -603,10 +597,6 @@ msgstr "" "VisibilityEnable2D fungerer bedst, når det bruges med den redigerede " "scenerod direkte som parent." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance indeholder ikke en BakedLight ressource." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -685,7 +675,8 @@ msgstr "" msgid "Cancel" msgstr "Annuller" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "Ok" @@ -1839,6 +1830,11 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Opret abonnement" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1906,7 +1902,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2131,7 +2129,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2811,6 +2811,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -3038,6 +3039,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3937,6 +3942,50 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Skift Array værditype" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4802,18 +4851,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5576,6 +5613,66 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Opret mappe" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Overgang" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6035,10 +6132,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6182,7 +6275,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6215,10 +6308,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6297,14 +6386,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6313,10 +6394,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6355,10 +6432,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6383,10 +6456,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6425,10 +6494,15 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" msgstr "" #: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Opret abonnement" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "" @@ -6451,13 +6525,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6553,6 +6625,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Error loading skrifttype." + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6565,15 +6642,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "Opret abonnement" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6585,7 +6663,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6752,6 +6830,13 @@ msgstr "" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance indeholder ikke en BakedLight ressource." + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/de.po b/tools/translations/de.po index 12351973d5..68ce048b5b 100644 --- a/tools/translations/de.po +++ b/tools/translations/de.po @@ -1,5 +1,5 @@ # German translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Alexander Mahr <alex.mahr@gmail.com>, 2016. @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-09-30 03:13+0000\n" +"PO-Revision-Date: 2016-12-10 04:27+0000\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -31,7 +31,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.9-dev\n" +"X-Generator: Weblate 2.10-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -50,12 +50,6 @@ msgid "step argument is zero!" msgstr "Schrittargument ist null!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Skript hat keine Instanz" @@ -188,9 +182,8 @@ msgid "Editing Signal:" msgstr "bearbeite Signal:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "Typ ändern" +msgstr "Ausdruck ändern" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -241,40 +234,36 @@ msgid "Add Setter Property" msgstr "Setter-Eigenschaft hinzufügen" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "Animation kopieren" +msgstr "Bedingung" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "Sequenz" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Switch" -msgstr "Tonhöhe" +msgstr "Schalter" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Iterator" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "Während" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Return" -msgstr "Rückgabe:" +msgstr "Rückgabe" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" msgstr "Aufruf" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Get" -msgstr "Setzen" +msgstr "Abfragen" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp @@ -417,87 +406,87 @@ msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "gerade gedrückt" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "gerade losgelassen" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"Zertifikat-Datei konnte nicht gelesen werden. Sind Pfad und Passwort beide " +"korrekt?" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "Fehler beim Schreiben des Projekt-PCK!" +msgstr "Fehler beim erstellen des Signaturobjekts." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "Fehler beim erstellen der Paketsignatur." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"Keine Exportvorlagen gefunden.\n" +"Laden Sie Exportvorlagen ggf. von der offiziellen Webseite herunter und " +"installieren Sie diese." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "Selbst konfiguriertes Debug-Paket nicht gefunden." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "Selbst konfiguriertes Release-Paket nicht gefunden." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "Ungültiger Name." +msgstr "Ungültiger einzigartiger Name." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "Ungültige Schriftgröße." +msgstr "Ungültige Produkt-GUID." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "Ungültiger Pfad" +msgstr "Ungültige Verleger-GUID." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "Eigene Schriftart-Quelle ist ungültig." +msgstr "Ungültige Hintergrundfarbe." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "Ungültige Abmessungen des Store-Logos (sollte 50x50 sein)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "" +msgstr "Ungültige Abmessungen für 44x44-Quadratlogo (sollte 44x44 sein)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "" +msgstr "Ungültige Abmessungen für 71x71-Quadratlogo (sollte 71x71 sein)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "" +msgstr "Ungültige Abmessungen für 150x150-Quadratlogo (sollte 150x150 sein)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "" +msgstr "Ungültige Abmessungen für 310x310-Quadratlogo (sollte 310x310 sein)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "" +msgstr "Ungültige Abmessungen für 310x150-Breitlogo (sollte 310x150 sein)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." -msgstr "" +msgstr "Ungültige Abmessungen für Startbildschirm (sollte 620x300 sein)." #: scene/2d/animated_sprite.cpp msgid "" @@ -643,10 +632,6 @@ msgstr "" "VisibilityEnable2D funktioniert am besten, wenn es ein Unterobjekt erster " "Ordnung der bearbeiteten Szene ist." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance enthält keine BakedLight-Ressource." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -694,9 +679,8 @@ msgstr "" "eines Navigation-Nodes sein. Es liefert nur Navigationsdaten." #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." -msgstr "Die Pfad-Eigenschaft muss auf ein gültiges Particles2D-Node verweisen." +msgstr "Die Pfad-Eigenschaft muss auf ein gültiges Spatial-Node verweisen." #: scene/3d/scenario_fx.cpp msgid "" @@ -725,7 +709,8 @@ msgstr "" msgid "Cancel" msgstr "Abbrechen" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -1473,6 +1458,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"Zielmethode nicht gefunden! Bitte gültige Methode angeben oder Skript an " +"Zielnode anhängen." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" @@ -1891,6 +1878,11 @@ msgid "Constants:" msgstr "Konstanten:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Kurze Beschreibung:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Methoden Beschreibung:" @@ -1958,7 +1950,9 @@ msgstr "Fehler beim speichern der Ressource!" msgid "Save Resource As.." msgstr "Speichere Ressource als.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Verstehe..." @@ -2199,7 +2193,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Wähle eine Hauptszene" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Ähm" @@ -2521,9 +2517,8 @@ msgid "Editor Layout" msgstr "Editorlayout" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" -msgstr "Vollbildmodus" +msgstr "Vollbildmodus umschalten" #: tools/editor/editor_node.cpp msgid "Install Export Templates" @@ -2551,7 +2546,7 @@ msgstr "Änderungen aktualisieren" #: tools/editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "Update-Anzeigerad deaktivieren" #: tools/editor/editor_node.cpp msgid "Inspector" @@ -2905,6 +2900,7 @@ msgstr "Quelltextur(en):" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Zielpfad:" @@ -3136,6 +3132,10 @@ msgid "Auto" msgstr "Auto" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "Name des Root-Node:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Die folgenden Dateien fehlen:" @@ -3980,9 +3980,8 @@ msgid "Clear Bones" msgstr "Knochen entfernen" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Bones" -msgstr "Knochen erstellen" +msgstr "Knochen anzeigen" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -4045,6 +4044,52 @@ msgstr "Einen Wert setzen" msgid "Snap (Pixels):" msgstr "Einrasten (Pixel):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "%s hinzufügen" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "%s hinzufügen…" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Erzeuge Node" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Fehler beim Instanziieren von %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "Verstehe" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "Kein Node unter dem Unterobjekt instantiiert werden könnte vorhanden." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Diese Aktion benötigt ein einzelnes ausgewähltes Node." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "Standardtyp ändern" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" +"Ziehen + Umschalt: Node in gleicher Hierarchie einfügen\n" +"Ziehen + Alt: Nodetyp ändern" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4724,9 +4769,8 @@ msgid "Close Docs" msgstr "Dokumentation schließen" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "Schließen" +msgstr "Alle schließen" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp @@ -4841,9 +4885,8 @@ msgstr "" "Szene geladen ist" #: tools/editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" -msgstr "Farbe" +msgstr "Farbe auswählen" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" @@ -4916,18 +4959,6 @@ msgstr "Springe zu Zeile.." msgid "Contextual Help" msgstr "Kontexthilfe" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Vertex" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "Fragment" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "Belichtung" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Ändere skalare Konstante" @@ -5221,9 +5252,8 @@ msgid "Insert Animation Key" msgstr "Animations-Schlüsselbild einfügen" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Origin" -msgstr "Zeige Ursprung" +msgstr "Auf Ursprung zentrieren" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Selection" @@ -5491,9 +5521,8 @@ msgid "Remove Item" msgstr "Entferne Element" #: tools/editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "Motiv speichern" +msgstr "Motiv" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5692,6 +5721,71 @@ msgid "No exporter for platform '%s' yet." msgstr "Kein Exporter für Plattform ‚%s‘ verfügbar." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Erstelle neue Ressource" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Gültiger Name" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Übergang" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Status:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Passwort:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Gültige Zeichen:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Neuer Name:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Einbeziehen" @@ -6158,10 +6252,6 @@ msgid "Erase Input Action Event" msgstr "Lösche Eingabeaktionsereignis" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "Persistente an- und ausschalten" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Fehler beim Speichern der Einstellungen." @@ -6305,7 +6395,7 @@ msgstr "Datei.." msgid "Dir.." msgstr "Verzeichnis.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Lade" @@ -6314,9 +6404,8 @@ msgid "Assign" msgstr "Zuweisen" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "Nächstes Skript" +msgstr "Neues Skript" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6339,10 +6428,6 @@ msgid "Properties:" msgstr "Eigenschaften:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Global" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "Abschnitte:" @@ -6420,14 +6505,6 @@ msgid "Scene Run Settings" msgstr "Szenenausführungseinstellungen" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "Verstehe" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "Kein Node unter dem Unterobjekt instantiiert werden könnte vorhanden." - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" "Kein Eltern-Node unter dem Szenen instantiiert werden könnten vorhanden." @@ -6437,10 +6514,6 @@ msgid "Error loading scene from %s" msgstr "Fehler beim Laden der Szene von %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Fehler beim Instanziieren von %s" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Ok" @@ -6482,10 +6555,6 @@ msgid "This operation can't be done without a scene." msgstr "Diese Aktion kann nicht ohne eine Szene ausgeführt werden." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "Diese Aktion benötigt ein einzelnes ausgewähltes Node." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Diese Aktion kann nicht auf instantiierten Szenen ausgeführt werden." @@ -6510,10 +6579,6 @@ msgid "Remove Node(s)" msgstr "Entferne Node(s)" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Erzeuge Node" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6554,10 +6619,14 @@ msgid "Change Type" msgstr "Typ ändern" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" msgstr "Skript hinzufügen" #: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "Skript leeren" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "Aus Szene zusammenführen" @@ -6582,16 +6651,12 @@ msgstr "" "keine Root-Node existiert." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." -msgstr "Erzeuge ein neues Skript für das ausgewählte Node." +msgid "Attach a new or existing script for the selected node." +msgstr "Ein neues oder existierendes Skript zum ausgewählten Node hinzufügen." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Diese Element kann nicht sichtbar gemacht werden solange das Elternelement " -"versteckt ist. Elternelement zuerst sichtbar machen." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "Leere ein Skript für das ausgewählte Node." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6687,6 +6752,10 @@ msgid "Could not create script in filesystem." msgstr "Skript konnte nicht im Dateisystem erstellt werden." #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "Fehler beim Laden des Skripts von %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "Pfad ist leer" @@ -6699,16 +6768,16 @@ msgid "Invalid base path" msgstr "Ungültiger Pfad" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "Datei existiert" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Ungültige Erweiterung" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Gültiger Pfad" +msgid "Create new script" +msgstr "Neues Skript erstellen" + +#: tools/editor/script_create_dialog.cpp +msgid "Load existing script" +msgstr "Lade bestehendes Skript" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6719,8 +6788,8 @@ msgid "Built-In Script" msgstr "Built-In-Skript" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "Erstelle Node-Skript" +msgid "Attach Node Script" +msgstr "Node-Skript hinzufügen" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6886,6 +6955,42 @@ msgstr "Ändere Länge der Strahlenform" msgid "Change Notifier Extents" msgstr "Ändere Ausmaße des Benachrichtigers" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Ändere Ausmaße des Benachrichtigers" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance enthält keine BakedLight-Ressource." + +#~ msgid "Vertex" +#~ msgstr "Vertex" + +#~ msgid "Fragment" +#~ msgstr "Fragment" + +#~ msgid "Lighting" +#~ msgstr "Belichtung" + +#~ msgid "Toggle Persisting" +#~ msgstr "Persistente an- und ausschalten" + +#~ msgid "Global" +#~ msgstr "Global" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Diese Element kann nicht sichtbar gemacht werden solange das " +#~ "Elternelement versteckt ist. Elternelement zuerst sichtbar machen." + +#~ msgid "File exists" +#~ msgstr "Datei existiert" + +#~ msgid "Valid path" +#~ msgstr "Gültiger Pfad" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/de_CH.po b/tools/translations/de_CH.po index 6c5e6b65c3..e6e0efdb23 100644 --- a/tools/translations/de_CH.po +++ b/tools/translations/de_CH.po @@ -1,5 +1,5 @@ # Swiss High German translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Christian Fisch <christian.fiesel@gmail.com>, 2016. @@ -32,12 +32,6 @@ msgid "step argument is zero!" msgstr "" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "" @@ -393,75 +387,75 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Error creating the signature object." msgstr "Fehler beim Schreiben des Projekts PCK!" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -592,10 +586,6 @@ msgstr "" "VisibilityEnable2D funktioniert am besten, wenn es ein Unterobjekt erster " "Ordnung der bearbeiteten Hauptszene ist." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -659,7 +649,8 @@ msgstr "" msgid "Cancel" msgstr "Abbrechen" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "Okay" @@ -1804,6 +1795,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1871,7 +1866,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2096,7 +2093,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2781,6 +2780,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -3008,6 +3008,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3919,6 +3923,50 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Node erstellen" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Fehler beim Instanzieren der %s Szene" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "Okay :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Bitte nur ein Node selektieren." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Typ ändern" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4785,18 +4833,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5560,6 +5596,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6020,10 +6114,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6167,7 +6257,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6201,10 +6291,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6281,14 +6367,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "Okay :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6297,10 +6375,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Fehler beim Instanzieren der %s Szene" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Okay" @@ -6340,10 +6414,6 @@ msgid "This operation can't be done without a scene." msgstr "Ohne eine Szene kann das nicht funktionieren." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "Bitte nur ein Node selektieren." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Das funktioniert nicht bei einer instanzierten Szene." @@ -6368,10 +6438,6 @@ msgid "Remove Node(s)" msgstr "Node(s) entfernen" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Node erstellen" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6410,7 +6476,13 @@ msgid "Change Type" msgstr "Typ ändern" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +#, fuzzy +msgid "Attach Script" +msgstr "Script hinzufügen" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" msgstr "Script hinzufügen" #: tools/editor/scene_tree_dock.cpp @@ -6437,13 +6509,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6539,6 +6609,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Fehler beim Instanzieren der %s Szene" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6551,15 +6626,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "Neues Projekt erstellen" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6571,8 +6647,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "Script hinzufügen" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6738,5 +6815,9 @@ msgstr "" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + #~ msgid "Insert Keys (Ins)" #~ msgstr "Bilder (innerhalb) einfügen" diff --git a/tools/translations/es.po b/tools/translations/es.po index c02a679529..cec4730148 100644 --- a/tools/translations/es.po +++ b/tools/translations/es.po @@ -1,5 +1,5 @@ # Spanish translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Carlos López <genetita@gmail.com>, 2016. @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-09-01 19:29+0000\n" +"PO-Revision-Date: 2016-11-22 16:41+0000\n" "Last-Translator: Swyter <swyterzone@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" @@ -22,7 +22,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.8\n" +"X-Generator: Weblate 2.10-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -43,12 +43,6 @@ msgid "step argument is zero!" msgstr "¡El argumento «step» es cero!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "No es un script con una instancia" @@ -241,8 +235,9 @@ msgid "Condition" msgstr "Copiar animación" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Sequence" -msgstr "" +msgstr "Secuencia" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -251,11 +246,11 @@ msgstr "Altura" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Iterador" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "Mientras" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -415,87 +410,108 @@ msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "se presione" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "se levante" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"No se ha podido leer el archivo de certificación. ¿Seguro que la ruta y " +"contraseña son correctas?" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Error creating the signature object." msgstr "¡Error al escribir el PCK de proyecto!" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Error creating the package signature." -msgstr "" +msgstr "Se produjo un error al firmar el paquete." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"No se han encontrado plantillas de exportación.\n" +"Tienes que descargar e instalarlas para continuar." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Custom debug package not found." -msgstr "" +msgstr "No se ha encontrado ningún paquete de depuración personalizado." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "No se ha encontrado ningún paquete final personalizado." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "El nombre no es correcto." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "Tamaño de tipografía incorrecto." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid publisher GUID." msgstr "Ruta base incorrecta" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid background color." msgstr "El origen personalizado de tipografía no es correcto." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "El logo de la tienda no es del tamaño adecuado (debe ser de 50x50)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" +"El logo cuadrado de 44x44 no es del tamaño adecuado (debe ser de 44x44)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" +"El logo cuadrado de 71x71 no es del tamaño adecuado (debe ser de 71x71)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" +"El logo cuadrado de 150x150 no es del tamaño adecuado (debe ser de 150x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" +"El logo cuadrado de 310x310 no es del tamaño adecuado (debe ser de 310x310)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" +"El logo ancho de 310x150 no es del tamaño adecuado (debe ser de 310x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" +"El tamaño de la imagen de arranque no es correcto (debe ser de 620x300)." #: scene/2d/animated_sprite.cpp msgid "" @@ -633,10 +649,6 @@ msgstr "" "VisibilityEnable2D funciona mejor cuando se usa con la raíz de escena " "editada directamente como padre." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance no contiene un recurso BakedLight." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -716,7 +728,8 @@ msgstr "" msgid "Cancel" msgstr "Cancelar" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "Aceptar" @@ -1460,10 +1473,13 @@ msgid "Method in target Node must be specified!" msgstr "¡Debes establecer un método en el nodo seleccionado!" #: tools/editor/connections_dialog.cpp +#, fuzzy msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"No se ha encontrado el método objetivo. Especifica un método válido o ancla " +"un script en el nodo objetivo." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" @@ -1885,6 +1901,11 @@ msgid "Constants:" msgstr "Constantes:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Descripción breve:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Descripción de métodos:" @@ -1952,7 +1973,9 @@ msgstr "¡Hubo un error al guardar el recurso!" msgid "Save Resource As.." msgstr "Guardar recurso como…" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Muy bien…" @@ -2193,7 +2216,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Elige una escena principal" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Vaya" @@ -2543,8 +2568,9 @@ msgid "Update Changes" msgstr "Actualizar cambios" #: tools/editor/editor_node.cpp +#, fuzzy msgid "Disable Update Spinner" -msgstr "" +msgstr "Desactivar la animación al actualizar" #: tools/editor/editor_node.cpp msgid "Inspector" @@ -2901,6 +2927,7 @@ msgstr "Texturas de origen:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Ruta de destino:" @@ -3132,6 +3159,11 @@ msgid "Auto" msgstr "Auto" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +#, fuzzy +msgid "Root Node Name:" +msgstr "Nombre del nodo:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Faltan los siguientes archivos:" @@ -4045,6 +4077,55 @@ msgstr "Establecer valor" msgid "Snap (Pixels):" msgstr "Fijar (Pixeles):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Add %s" +msgstr "Añadir todos" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Adding %s..." +msgstr "Añadiendo %s..." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Crear nodo" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Error al instanciar escena desde %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "Muy bien :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "No hay padre al que instanciarle un hijo." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Esta operación requiere un solo nodo seleccionado." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Cambiar Valor por Defecto" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" +"Arrastrar y soltar + Mayús: Añadir nodo como hermano\n" +"Arrastrar y soltar + Alt: Cambiar tipo de nodo" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4923,18 +5004,6 @@ msgstr "Ir a línea…" msgid "Contextual Help" msgstr "Ayuda contextual" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Vértice" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "Fragmento" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "Iluminación" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Cambiar Constante Escalar" @@ -5701,6 +5770,71 @@ msgid "No exporter for platform '%s' yet." msgstr "No hay exportador para la plataforma '%s' aun." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Crear recurso nuevo" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Nombre válido" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Transición" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Estado:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Contraseña:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Letras válidas:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Nuevo nombre:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Incluir" @@ -6168,10 +6302,6 @@ msgid "Erase Input Action Event" msgstr "Borrar evento de acción de entrada" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "Des/activar persistencia" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Error al guardar los ajustes." @@ -6315,7 +6445,7 @@ msgstr "Archivo…" msgid "Dir.." msgstr "Dir…" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Cargar" @@ -6349,10 +6479,6 @@ msgid "Properties:" msgstr "Propiedades:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Global" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "Selecciones:" @@ -6432,14 +6558,6 @@ msgid "Scene Run Settings" msgstr "Ajustes de ejecución de escena" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "Muy bien :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "No hay padre al que instanciarle un hijo." - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "No hay padre donde instanciar la escena." @@ -6448,10 +6566,6 @@ msgid "Error loading scene from %s" msgstr "Error al cargar escena desde %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Error al instanciar escena desde %s" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Aceptar" @@ -6492,10 +6606,6 @@ msgid "This operation can't be done without a scene." msgstr "Esta operación no puede realizarse sin una escena." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "Esta operación requiere un solo nodo seleccionado." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Esta operación no puede realizarse en escenas instanciadas." @@ -6520,10 +6630,6 @@ msgid "Remove Node(s)" msgstr "Borrar nodos" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Crear nodo" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6564,10 +6670,16 @@ msgid "Change Type" msgstr "Cambiar tipo" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +#, fuzzy +msgid "Attach Script" msgstr "Añadir script" #: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Crear script" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "Unir desde escena" @@ -6592,16 +6704,14 @@ msgstr "" "existe ningún nodo raíz." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +#, fuzzy +msgid "Attach a new or existing script for the selected node." msgstr "Crear un nuevo script para el nodo seleccionado." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Este item no puede hacerse visible porque el padre esta oculto. Desocultá el " -"padre primero." +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear a script for the selected node." +msgstr "Crear un nuevo script para el nodo seleccionado." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6697,6 +6807,11 @@ msgid "Could not create script in filesystem." msgstr "No se puede crear el script en el sistema de archivos." #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Error al cargar escena desde %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "La ruta está vacia" @@ -6709,16 +6824,18 @@ msgid "Invalid base path" msgstr "Ruta base incorrecta" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "El archivo ya existe" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "La extensión no es correcta" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Ruta válida" +#, fuzzy +msgid "Create new script" +msgstr "Crear script" + +#: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Load existing script" +msgstr "Script siguiente" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6729,7 +6846,8 @@ msgid "Built-In Script" msgstr "Script integrado" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +#, fuzzy +msgid "Attach Node Script" msgstr "Crear script de nodo" #: tools/editor/script_editor_debugger.cpp @@ -6896,6 +7014,42 @@ msgstr "Cambiar longitud de forma de rayo" msgid "Change Notifier Extents" msgstr "Cambiar Alcances de Notificadores" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Cambiar Alcances de Notificadores" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance no contiene un recurso BakedLight." + +#~ msgid "Vertex" +#~ msgstr "Vértice" + +#~ msgid "Fragment" +#~ msgstr "Fragmento" + +#~ msgid "Lighting" +#~ msgstr "Iluminación" + +#~ msgid "Toggle Persisting" +#~ msgstr "Des/activar persistencia" + +#~ msgid "Global" +#~ msgstr "Global" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Este item no puede hacerse visible porque el padre esta oculto. Desocultá " +#~ "el padre primero." + +#~ msgid "File exists" +#~ msgstr "El archivo ya existe" + +#~ msgid "Valid path" +#~ msgstr "Ruta válida" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/es_AR.po b/tools/translations/es_AR.po index 6c266e74a7..08376f39c5 100644 --- a/tools/translations/es_AR.po +++ b/tools/translations/es_AR.po @@ -1,5 +1,5 @@ # Spanish (Argentina) translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Lisandro Lorea <lisandrolorea@gmail.com>, 2016. @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-09-04 12:31+0000\n" -"Last-Translator: Roger BR <drai_kin@hotmail.com>\n" +"PO-Revision-Date: 2016-12-04 06:03+0000\n" +"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.8\n" +"X-Generator: Weblate 2.10-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -37,12 +37,6 @@ msgid "step argument is zero!" msgstr "el argumento step es cero!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "No es un script con una instancia" @@ -175,9 +169,8 @@ msgid "Editing Signal:" msgstr "Editando Señal:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "Cambiar Tipo" +msgstr "Cambiar Expresión" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -228,40 +221,36 @@ msgid "Add Setter Property" msgstr "Agregar Propiedad Setter" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "Copiar Animación" +msgstr "Condición" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "Secuencia" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Switch" -msgstr "Altura" +msgstr "Switch" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Iterador" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "Mientras" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Return" -msgstr "Retornar:" +msgstr "Retornar" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" msgstr "Llamar" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Get" -msgstr "Setear" +msgstr "Obtener" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp @@ -403,87 +392,97 @@ msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "recién presionado" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "recién soltado" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"No se pudo leer el archivo de certificado. Son tanto la ruta como el " +"password correctos?" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "Error al escribir el PCK de proyecto!" +msgstr "Error al crear el objeto firma." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "Error al crear la firma del paquete." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"No se encontraron export templates.\n" +"Descargá o instalá export templates." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "Paquete debug personalizado no encontrado." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "Paquete release personalizado no encontrado." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "Nombre inválido." +msgstr "Nombre único inválido." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "Tamaño de tipografía inválido." +msgstr "GUID de producto inválido." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "Ruta base inválida" +msgstr "GUID de publisher inválido." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "Origen personalizado de tipografía inválido." +msgstr "Color de fondo inválido." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" +"Dimensiones de la imagen para el Store Logo inválidas (debería ser 50x50)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" +"Dimensiones de la imagen para el logo cuadrado de 44x44 inválidas (debería " +"ser 44x44)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" +"Dimensiones de la imagen para el logo cuadrado de 71x71 inválidas (debería " +"ser 71x71)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" +"Dimensiones de la imagen para el logo cuadrado de 150x150 inválidas (debería " +"ser 150x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" +"Dimensiones de la imagen para el logo cuadrado de 310x310 inválidas (debería " +"ser 310x310)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" +"Dimensiones de la imagen para el logo ancho de 310x150 inválidas (debería " +"ser 310x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." -msgstr "" +msgstr "Dimensiones de la imagen del splash inválidas (debería ser 620x400)." #: scene/2d/animated_sprite.cpp msgid "" @@ -621,10 +620,6 @@ msgstr "" "VisibilityEnable2D funciona mejor cuando se usa con la raíz de escena " "editada directamente como padre." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance no contiene un recurso BakedLight." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -671,10 +666,9 @@ msgstr "" "provee datos de navegación." #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." msgstr "" -"La propiedad Path debe apuntar a un nodo Particles2D valido para funcionar." +"La propiedad Path debe apuntar a un nodo Spatial valido para funcionar." #: scene/3d/scenario_fx.cpp msgid "" @@ -703,7 +697,8 @@ msgstr "" msgid "Cancel" msgstr "Cancelar" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -1449,6 +1444,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"El método objetivo no fue encontrado! Especificá un método válido o agregá " +"un script al Nodo objetivo." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" @@ -1826,7 +1823,7 @@ msgstr "EscanearFuentes" #: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp msgid "Search Help" -msgstr "Ayuda de Búsqueda" +msgstr "Buscar en la Ayuda" #: tools/editor/editor_help.cpp msgid "Class List:" @@ -1866,6 +1863,11 @@ msgid "Constants:" msgstr "Constantes:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Descripción Breve:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Descripción de Métodos:" @@ -1933,7 +1935,9 @@ msgstr "Error al guardar el recurso!" msgid "Save Resource As.." msgstr "Guardar Recurso Como.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Ya Veo.." @@ -2171,7 +2175,9 @@ msgstr "Abrir el Gestor de Proyectos? (Los cambios sin guardar se perderán)" msgid "Pick a Main Scene" msgstr "Elegí una Escena Principal" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Ugh" @@ -2493,9 +2499,8 @@ msgid "Editor Layout" msgstr "Layout del Editor" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" -msgstr "Modo Pantalla Completa" +msgstr "Act./Desact. Pantalla Completa" #: tools/editor/editor_node.cpp msgid "Install Export Templates" @@ -2523,7 +2528,7 @@ msgstr "Actualizar Cambios" #: tools/editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "Desactivar Update Spinner" #: tools/editor/editor_node.cpp msgid "Inspector" @@ -2878,6 +2883,7 @@ msgstr "Textura(s) de Origen:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Ruta de Destino:" @@ -3109,6 +3115,10 @@ msgid "Auto" msgstr "Auto" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "Nombre del Nodo Raíz:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Los Siguientes Archivos estan Faltando:" @@ -3955,9 +3965,8 @@ msgid "Clear Bones" msgstr "Reestablecer Huesos" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Bones" -msgstr "Crear Huesos" +msgstr "Mostrar Huesos" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -4020,6 +4029,51 @@ msgstr "Setear un Valor" msgid "Snap (Pixels):" msgstr "Snap (Pixeles):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "Agregar %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "Agregando %s..." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Crear Nodo" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Error al instanciar escena desde %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "OK :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "No hay padre al que instanciarle un hijo." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Esta operación requiere un solo nodo seleccionado." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "Cambiar typo por defecto" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" +"Drag & drop + Shift : Agregar nodo como hermano\n" +"Drag & drop + Alt : Cambiar tipo de nodo" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4699,9 +4753,8 @@ msgid "Close Docs" msgstr "Cerrar Docs" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "Cerrar" +msgstr "Cerrar Todos" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp @@ -4816,9 +4869,8 @@ msgstr "" "pertenecen esta cargada" #: tools/editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" -msgstr "Color" +msgstr "Elegir Color" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" @@ -4891,18 +4943,6 @@ msgstr "Ir a Línea.." msgid "Contextual Help" msgstr "Ayuda Contextual" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Vértice" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "Fragmento" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "Iluminación" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Cambiar Constante Escalar" @@ -5196,9 +5236,8 @@ msgid "Insert Animation Key" msgstr "Insertar Clave de Animación" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Origin" -msgstr "Ver Origen" +msgstr "Foco en Origen" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Selection" @@ -5466,9 +5505,8 @@ msgid "Remove Item" msgstr "Remover Item" #: tools/editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "Guardar Tema" +msgstr "Tema" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5667,6 +5705,71 @@ msgid "No exporter for platform '%s' yet." msgstr "No hay exportador para la plataforma '%s' aun." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Crear Nuevo Recurso" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Nombre válido" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Transición" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Estado:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Contraseña:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Caracteres válidos:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Nuevo nombre:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Incluir" @@ -6134,10 +6237,6 @@ msgid "Erase Input Action Event" msgstr "Borrar Evento de Acción de Entrada" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "Act/Desact. Persistente" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Error al guardar los ajustes." @@ -6281,7 +6380,7 @@ msgstr "Archivo.." msgid "Dir.." msgstr "Dir.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Cargar" @@ -6290,9 +6389,8 @@ msgid "Assign" msgstr "Asignar" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "Script siguiente" +msgstr "Nuevo Script" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6315,10 +6413,6 @@ msgid "Properties:" msgstr "Propiedades:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Global" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "Selecciones:" @@ -6396,14 +6490,6 @@ msgid "Scene Run Settings" msgstr "Ajustes de Ejecución de Escena" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "OK :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "No hay padre al que instanciarle un hijo." - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "No hay padre donde instanciar la escena." @@ -6412,10 +6498,6 @@ msgid "Error loading scene from %s" msgstr "Error al cargar escena desde %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Error al instanciar escena desde %s" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Ok" @@ -6456,10 +6538,6 @@ msgid "This operation can't be done without a scene." msgstr "Esta operación no puede hacerse sin una escena." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "Esta operación requiere un solo nodo seleccionado." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Esta operación no puede ser realizada en escenas instanciadas." @@ -6485,10 +6563,6 @@ msgid "Remove Node(s)" msgstr "Quitar Nodo(s)" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Crear Nodo" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6529,8 +6603,12 @@ msgid "Change Type" msgstr "Cambiar Tipo" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "Agregar Script" +msgid "Attach Script" +msgstr "Adjuntar Script" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "Reestablecer Script" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6557,16 +6635,12 @@ msgstr "" "existe ningún nodo raíz." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." -msgstr "Crear un nuevo script para el nodo seleccionado." +msgid "Attach a new or existing script for the selected node." +msgstr "Adjuntar un script nuevo o existente para el nodo seleccionado." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Este item no puede hacerse visible porque el padre esta oculto. Desocultá el " -"padre primero." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "Reestablecer un script para el nodo seleccionado." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6661,6 +6735,10 @@ msgid "Could not create script in filesystem." msgstr "No se puede crear el script en el sistema de archivos." #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "Error al cargar el script desde %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "La ruta está vacia" @@ -6673,16 +6751,16 @@ msgid "Invalid base path" msgstr "Ruta base inválida" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "El archivo existe" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Extensión invalida" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Ruta inválida" +msgid "Create new script" +msgstr "Crear script nuevo" + +#: tools/editor/script_create_dialog.cpp +msgid "Load existing script" +msgstr "Cargar script existente" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6693,8 +6771,8 @@ msgid "Built-In Script" msgstr "Script Integrado (Built-In)" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "Crear Script de Nodo" +msgid "Attach Node Script" +msgstr "Adjuntar Script de Nodo" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6860,6 +6938,49 @@ msgstr "Cambiar Largo de Shape Rayo" msgid "Change Notifier Extents" msgstr "Cambiar Alcances de Notificadores" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Cambiar Alcances de Notificadores" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance no contiene un recurso BakedLight." + +#~ msgid "Vertex" +#~ msgstr "Vértice" + +#~ msgid "Fragment" +#~ msgstr "Fragmento" + +#~ msgid "Lighting" +#~ msgstr "Iluminación" + +#~ msgid "Toggle Persisting" +#~ msgstr "Act/Desact. Persistente" + +#~ msgid "Global" +#~ msgstr "Global" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Este item no puede hacerse visible porque el padre esta oculto. Desocultá " +#~ "el padre primero." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "Las rutas no pueden comenzar con '/', las rutas absolutas deben comenzar " +#~ "con 'res://', 'user://'. o 'local://'" + +#~ msgid "File exists" +#~ msgstr "El archivo existe" + +#~ msgid "Valid path" +#~ msgstr "Ruta inválida" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/extract.py b/tools/translations/extract.py index 61b07b5799..1192c19011 100755 --- a/tools/translations/extract.py +++ b/tools/translations/extract.py @@ -10,27 +10,27 @@ import sys line_nb = False for arg in sys.argv[1:]: - if (arg == "--with-line-nb"): - print("Enabling line numbers in the context locations.") - line_nb = True - else: - os.sys.exit("Non supported argument '" + arg + "'. Aborting.") + if (arg == "--with-line-nb"): + print("Enabling line numbers in the context locations.") + line_nb = True + else: + os.sys.exit("Non supported argument '" + arg + "'. Aborting.") if (not os.path.exists("tools")): - os.sys.exit("ERROR: This script should be started from the root of the git repo.") + os.sys.exit("ERROR: This script should be started from the root of the git repo.") matches = [] for root, dirnames, filenames in os.walk('.'): - for filename in fnmatch.filter(filenames, '*.cpp'): - if (filename.find("collada") != -1): - continue - matches.append(os.path.join(root, filename)) - for filename in fnmatch.filter(filenames, '*.h'): - if (filename.find("collada") != -1): - continue - matches.append(os.path.join(root, filename)) + for filename in fnmatch.filter(filenames, '*.cpp'): + if (filename.find("collada") != -1): + continue + matches.append(os.path.join(root, filename)) + for filename in fnmatch.filter(filenames, '*.h'): + if (filename.find("collada") != -1): + continue + matches.append(os.path.join(root, filename)) matches.sort() @@ -38,7 +38,7 @@ unique_str = [] unique_loc = {} main_po = """ # LANGUAGE translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. @@ -55,51 +55,51 @@ print("Updating the tools.pot template...") for fname in matches: - f = open(fname, "rb") - - l = f.readline() - lc = 1 - while (l): - - patterns = ['RTR(\"', 'TTR(\"'] - idx = 0 - pos = 0 - while (pos >= 0): - pos = l.find(patterns[idx], pos) - if (pos == -1): - if (idx < len(patterns) - 1): - idx += 1 - pos = 0 - continue - pos += 5 - - msg = "" - while (pos < len(l) and (l[pos] != '"' or l[pos - 1] == '\\')): - msg += l[pos] - pos += 1 - - location = os.path.relpath(fname).replace('\\','/') - if (line_nb): - location += ":" + str(lc) - - if (not msg in unique_str): - main_po += "\n#: " + location + "\n" - main_po += 'msgid "' + msg + '"\n' - main_po += 'msgstr ""\n' - unique_str.append(msg) - unique_loc[msg] = [location] - elif (not location in unique_loc[msg]): - # Add additional location to previous occurence too - msg_pos = main_po.find('\nmsgid "' + msg + '"') - if (msg_pos == -1): - print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.") - main_po = main_po[:msg_pos] + ' ' + location + main_po[msg_pos:] - unique_loc[msg].append(location) - - l = f.readline() - lc += 1 - - f.close() + f = open(fname, "rb") + + l = f.readline() + lc = 1 + while (l): + + patterns = ['RTR(\"', 'TTR(\"'] + idx = 0 + pos = 0 + while (pos >= 0): + pos = l.find(patterns[idx], pos) + if (pos == -1): + if (idx < len(patterns) - 1): + idx += 1 + pos = 0 + continue + pos += 5 + + msg = "" + while (pos < len(l) and (l[pos] != '"' or l[pos - 1] == '\\')): + msg += l[pos] + pos += 1 + + location = os.path.relpath(fname).replace('\\', '/') + if (line_nb): + location += ":" + str(lc) + + if (not msg in unique_str): + main_po += "\n#: " + location + "\n" + main_po += 'msgid "' + msg + '"\n' + main_po += 'msgstr ""\n' + unique_str.append(msg) + unique_loc[msg] = [location] + elif (not location in unique_loc[msg]): + # Add additional location to previous occurence too + msg_pos = main_po.find('\nmsgid "' + msg + '"') + if (msg_pos == -1): + print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.") + main_po = main_po[:msg_pos] + ' ' + location + main_po[msg_pos:] + unique_loc[msg].append(location) + + l = f.readline() + lc += 1 + + f.close() f = open("tools.pot", "wb") @@ -107,15 +107,15 @@ f.write(main_po) f.close() if (os.name == "posix"): - print("Wrapping template at 79 characters for compatibility with Weblate.") - os.system("msgmerge -w79 tools.pot tools.pot > tools.pot.wrap") - shutil.move("tools.pot.wrap", "tools.pot") + print("Wrapping template at 79 characters for compatibility with Weblate.") + os.system("msgmerge -w79 tools.pot tools.pot > tools.pot.wrap") + shutil.move("tools.pot.wrap", "tools.pot") shutil.move("tools.pot", "tools/translations/tools.pot") # TODO: Make that in a portable way, if we care; if not, kudos to Unix users if (os.name == "posix"): - added = subprocess.check_output("git diff tools/translations/tools.pot | grep \+msgid | wc -l", shell = True) - removed = subprocess.check_output("git diff tools/translations/tools.pot | grep \\\-msgid | wc -l", shell = True) - print("\n# Template changes compared to the staged status:") - print("# Additions: %s msgids.\n# Deletions: %s msgids." % (int(added), int(removed))) + added = subprocess.check_output("git diff tools/translations/tools.pot | grep \+msgid | wc -l", shell=True) + removed = subprocess.check_output("git diff tools/translations/tools.pot | grep \\\-msgid | wc -l", shell=True) + print("\n# Template changes compared to the staged status:") + print("# Additions: %s msgids.\n# Deletions: %s msgids." % (int(added), int(removed))) diff --git a/tools/translations/fa.po b/tools/translations/fa.po index 290c4a6309..8e29cda45f 100644 --- a/tools/translations/fa.po +++ b/tools/translations/fa.po @@ -1,5 +1,5 @@ # Persian translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # alabd14313 <alabd14313@yahoo.com>, 2016. @@ -38,12 +38,6 @@ msgid "step argument is zero!" msgstr "آرگومان step صفر است!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp #, fuzzy msgid "Not a script with an instance" msgstr "اسکریپتی با یک نمونه نیست ." @@ -409,76 +403,76 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "نام نامعتبر." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "اندازهی قلم نامعتبر." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -619,10 +613,6 @@ msgstr "" "VisibilityEnable2D زمانی بهتر کار میکند که در یک ریشهی صحنهی ویرایش شده به " "صورت پدر (parent) استفاده شود." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance محتوی یک منبع BakedLight نیست." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -701,7 +691,8 @@ msgstr "" msgid "Cancel" msgstr "لغو" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "موافقت" @@ -1863,6 +1854,11 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "خلاصه توضیحات:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1930,7 +1926,9 @@ msgstr "" msgid "Save Resource As.." msgstr "ذخیره منبع از ..." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "من میبینم ..." @@ -2155,7 +2153,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2836,6 +2836,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -3065,6 +3066,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3964,6 +3969,50 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "نوع مقدار آرایه را تغییر بده" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4829,18 +4878,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5603,6 +5640,69 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "پوشه ایجاد کن" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "انتقال" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "وضعیت:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "گذرواژه:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "کاراکترهای معتبر:" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6064,10 +6164,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6211,7 +6307,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6245,10 +6341,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6327,14 +6419,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6343,10 +6427,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6385,10 +6465,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6413,10 +6489,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6455,8 +6527,14 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +#, fuzzy +msgid "Attach Script" +msgstr "صحنه جدید" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "صحنه جدید" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6481,13 +6559,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6583,6 +6659,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "خطای بارگذاری قلم." + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6595,15 +6676,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "جدید ایجاد کن" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6615,8 +6697,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "صحنه جدید" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6782,6 +6865,13 @@ msgstr "" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance محتوی یک منبع BakedLight نیست." + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/fr.po b/tools/translations/fr.po index 94d43d12ba..10f82e2840 100644 --- a/tools/translations/fr.po +++ b/tools/translations/fr.po @@ -1,12 +1,15 @@ # French translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # +# Brice <bbric@free.fr>, 2016. # Chenebel Dorian <LoubiTek54@gmail.com>, 2016. # derderder77 <derderder77380@gmail.com>, 2016. # finkiki <specialpopol@gmx.fr>, 2016. # Hugo Locurcio <hugo.l@openmailbox.org>, 2016. # Marc <marc.gilleron@gmail.com>, 2016. +# Nicolas Lehuen <nicolas@lehuen.com>, 2016. +# Omicron <tritonic.dev@gmail.com>, 2016. # Onyx Steinheim <thevoxelmanonyx@gmail.com>, 2016. # rafeu <duchainer@gmail.com>, 2016. # Rémi Verschelde <rverschelde@gmail.com>, 2016. @@ -17,8 +20,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-09-03 09:11+0000\n" -"Last-Translator: Thomas Baijot <thomasbaijot@gmail.com>\n" +"PO-Revision-Date: 2016-12-15 22:36+0000\n" +"Last-Translator: Nicolas Lehuen <nicolas@lehuen.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -26,7 +29,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 2.8\n" +"X-Generator: Weblate 2.10\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -43,12 +46,6 @@ msgid "step argument is zero!" msgstr "L'argument du pas est zéro!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "N'est pas un script avec une instance" @@ -91,24 +88,30 @@ msgid "" "Node yielded, but did not return a function state in the first working " "memory." msgstr "" +"Le nœud a été produit mais il n'a pas retourné un état de fonction dans la " +"première mémoire de travail." #: modules/visual_script/visual_script.cpp msgid "" "Return value must be assigned to first element of node working memory! Fix " "your node please." msgstr "" +"Une valeur de retour doit être assignée au premier élément de la mémoire de " +"travail du nœud! Veuillez corriger votre nœud." #: modules/visual_script/visual_script.cpp msgid "Node returned an invalid sequence output: " -msgstr "Le nœud a retourné une séquence de sortie invalide " +msgstr "Le nœud a retourné une séquence de sortie invalide: " #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" msgstr "" +"Une séquence d'octets a été trouvée mais pas le nœud dans la pile, signalez " +"le bug!" #: modules/visual_script/visual_script.cpp msgid "Stack overflow with stack depth: " -msgstr "" +msgstr "Débordement de pile avec profondeur de pile: " #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" @@ -123,9 +126,8 @@ msgid "Signals:" msgstr "Signaux :" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Name is not a valid identifier:" -msgstr "Le nom n'est pas un identifiant valide" +msgstr "Le nom n'est pas un identifiant valide:" #: modules/visual_script/visual_script_editor.cpp msgid "Name already in use by another func/var/signal:" @@ -164,23 +166,20 @@ msgid "Remove Variable" msgstr "Supprimer la variable" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Editing Variable:" -msgstr "Variable" +msgstr "Éditer la variable:" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Signal" msgstr "Supprimer le signal" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Editing Signal:" -msgstr "Connecter un signal :" +msgstr "Éditer le signal :" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "Changer le type" +msgstr "Changer l'expression" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -189,31 +188,34 @@ msgstr "Ajouter un nœud" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"Maintenir Meta pour déposer un accesseur. Maintenir Maj pour déposer une " +"signature générique." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"Maintenir Ctrl pour déposer un accesseur. Maintenir Maj pour déposer une " +"signature générique." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a simple reference to the node." -msgstr "" +msgstr "Maintenir Meta pour déposer une référence simple au nœud." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." -msgstr "" +msgstr "Maintenir Ctrl pour déposer une référence simple au nœud." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Variable Setter." -msgstr "" +msgstr "Maintenir Meta pour déposer un mutateur de variable." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." -msgstr "" +msgstr "Maintenir Ctrl pour déposer un mutateur de variable." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Preload Node" -msgstr "Ajouter un nœud enfant" +msgstr "Ajouter un nœud 'preload'" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" @@ -221,47 +223,43 @@ msgstr "Ajouter un nœud à partir de l'arbre" #: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" -msgstr "" +msgstr "Ajouter une propriété accesseur" #: modules/visual_script/visual_script_editor.cpp msgid "Add Setter Property" -msgstr "" +msgstr "Ajouter une propriété mutateur" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "Copier l'animation" +msgstr "Condition" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "Séquence" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Switch" -msgstr "Hauteur" +msgstr "Switch" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Itérateur" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "Tant que" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Return" -msgstr "Retourne :" +msgstr "Retour" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" msgstr "Appel" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Get" -msgstr "Définir" +msgstr "Récupérer" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp @@ -308,11 +306,11 @@ msgstr "Fermer" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Signal Arguments:" -msgstr "Editer les arguments du signal" +msgstr "Éditer les arguments du signal:" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Variable:" -msgstr "Editer la variable" +msgstr "Éditer la variable:" #: modules/visual_script/visual_script_editor.cpp msgid "Change" @@ -328,28 +326,24 @@ msgid "Toggle Breakpoint" msgstr "Placer un point d'arrêt" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Find Node Type" -msgstr "Trouver le type du noeud" +msgstr "Trouver le type du nœud" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Copy Nodes" -msgstr "Copier la pose" +msgstr "Copier les nœuds" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Cut Nodes" -msgstr "Créer un nœud" +msgstr "Couper les nœuds" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Paste Nodes" -msgstr "Coller la pose" +msgstr "Coller les nœuds" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " -msgstr "" +msgstr "Type d'entrée non itérable: " #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" @@ -360,9 +354,8 @@ msgid "Iterator became invalid: " msgstr "L'itérateur est devenu invalide " #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Invalid index property name." -msgstr "Nom de classe parent invalide" +msgstr "Indice de nom de propriété invalide." #: modules/visual_script/visual_script_func_nodes.cpp msgid "Base object is not a Node!" @@ -377,9 +370,8 @@ msgid "Invalid index property name '%s' in node %s." msgstr "Nom de propriété invalide '%s' dans le nœud %s." #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid ": Invalid argument of type: " -msgstr "Nom de classe parent invalide" +msgstr ": Argument invalide de type: " #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid arguments: " @@ -396,96 +388,105 @@ msgstr "VariableSet introuvable dans le script: " #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." msgstr "" +"Le nœud personnalisé n'a pas de méthode _step(), le graph ne peut pas être " +"traité." #: modules/visual_script/visual_script_nodes.cpp msgid "" "Invalid return value from _step(), must be integer (seq out), or string " "(error)." msgstr "" +"La valeur retournée par _step() est invalide, elle doit être un entier (seq " +"out), ou une chaîne (erreur)." #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "seulement pressé" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "seulement relâché" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"Le fichier certificat ne pourrait pas être lu. Les chemin et mot de passe " +"sont t-ils tous deux corrects ?" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "Erreur d'écriture du PCK du projet !" +msgstr "Erreur en créant la signature de l'objet." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "Erreur en créant la signature du paquet." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"Aucun modèle d'export n'a été trouvé.\n" +"Téléchargez et installez des modèles d'export." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "Le paquet personnalisé de débogage n'a pas été trouvé." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "Le paquet personnalisé de parution n'a pas été trouvé." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "Nom invalide." +msgstr "Nom unique invalide." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "Taille de police invalide." +msgstr "GUID de produit invalide." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "Chemin de base invalide" +msgstr "GUID d'éditeur invalide." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "Source personnalisée de police invalide." +msgstr "Couleur d'arrière-plan invalide." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "Dimensions d'image de logo magasin invalides (devraient être 50x50)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" +"Dimensions d'image de logo carré 44x44 invalides (devraient être 44x44)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" +"Dimensions d'image de logo carré 71x71 invalides (devraient être 71x71)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" +"Dimensions d'image de logo carré 150x150 invalides (devraient être 150x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" +"Dimensions d'image de logo carré 310x310 invalides (devraient être 310x310)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" +"Dimensions d'image de logo large 310x150 invalides (devraient être 310x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" +"Dimensions d'image d'écran de démarrage invalides (devraient être 620x300)." #: scene/2d/animated_sprite.cpp msgid "" @@ -630,10 +631,6 @@ msgstr "" "Un VisibilityEnable2D fonctionne mieux lorsqu'il est directement enfant du " "nœud racine de la scène." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "La BakedLightInstance ne contient pas de ressource BakedLight." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -679,11 +676,9 @@ msgstr "" "Navigation. Il fournit uniquement des données de navigation." #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." msgstr "" -"La propriété Path doit pointer à un nœud de type Particles2D valide pour " -"fonctionner." +"La propriété Path doit pointer vers un nœud Spatial valide pour fonctionner." #: scene/3d/scenario_fx.cpp msgid "" @@ -712,7 +707,8 @@ msgstr "" msgid "Cancel" msgstr "Annuler" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -823,7 +819,7 @@ msgstr "Alt+" #: scene/gui/input_action.cpp msgid "Ctrl+" -msgstr "Contrôle+" +msgstr "Ctrl+" #: scene/gui/input_action.cpp tools/editor/project_settings.cpp #: tools/editor/settings_config_dialog.cpp @@ -1030,7 +1026,7 @@ msgstr "Dupliquer la sélection" #: tools/editor/animation_editor.cpp msgid "Duplicate Transposed" -msgstr "" +msgstr "Double transposé" #: tools/editor/animation_editor.cpp msgid "Remove Selection" @@ -1233,6 +1229,8 @@ msgstr "Optimiser" #: tools/editor/animation_editor.cpp msgid "Select an AnimationPlayer from the Scene Tree to edit animations." msgstr "" +"Sélectionnez un AnimationPlayer de l'arbre de scène pour éditer les " +"animations." #: tools/editor/animation_editor.cpp msgid "Key" @@ -1458,6 +1456,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"La méthode cible n'a pas été trouvée! Spécifiez une méthode valide ou " +"attachez un script au nœud cible." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" @@ -1516,7 +1516,7 @@ msgstr "Connecter un signal :" #: tools/editor/connections_dialog.cpp msgid "Create Subscription" -msgstr "" +msgstr "Créer une souscription" #: tools/editor/connections_dialog.cpp msgid "Connect.." @@ -1818,9 +1818,8 @@ msgid "Toggle Mode" msgstr "Basculer le mode" #: tools/editor/editor_file_dialog.cpp -#, fuzzy msgid "Focus Path" -msgstr "Copier le chemin" +msgstr "Focaliser le chemin" #: tools/editor/editor_file_dialog.cpp msgid "Move Favorite Up" @@ -1880,6 +1879,11 @@ msgid "Constants:" msgstr "Constantes :" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Brève description :" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Description de la méthode :" @@ -1948,7 +1952,9 @@ msgstr "Erreur d'enregistrement de la ressource !" msgid "Save Resource As.." msgstr "Enregistrer la ressource sous…" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Je vois…" @@ -2190,7 +2196,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Choisir une scène principale" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Oups" @@ -2452,12 +2460,11 @@ msgid "Visible Collision Shapes" msgstr "Formes de collision visibles" #: tools/editor/editor_node.cpp -#, fuzzy msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." msgstr "" -"Les formes de collision et les noeuds de raycast (pour 2D et 3D) seront " +"Les formes de collision et les nœuds de raycast (pour 2D et 3D) seront " "visibles en jeu si cette option est activée." #: tools/editor/editor_node.cpp @@ -2519,9 +2526,8 @@ msgid "Editor Layout" msgstr "Disposition de l'éditeur" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" -msgstr "Mode plein écran" +msgstr "Basculer le mode plein écran" #: tools/editor/editor_node.cpp msgid "Install Export Templates" @@ -2908,6 +2914,7 @@ msgstr "Texture(s) source :" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Chemin de destination :" @@ -3141,6 +3148,11 @@ msgid "Auto" msgstr "Auto." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +#, fuzzy +msgid "Root Node Name:" +msgstr "Nom de nœud :" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Les fichiers suivants sont manquants :" @@ -3176,9 +3188,8 @@ msgid "Couldn't load post-import script:" msgstr "Impossible de charger le script de post-importation :" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Invalid/broken script for post-import (check console):" -msgstr "Script de post-importation invalide ou cassé :" +msgstr "Script de post-importation invalide ou cassé (vérifiez la console):" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Error running post-import script:" @@ -3548,9 +3559,8 @@ msgid "Play selected animation from start. (Shift+D)" msgstr "Lire l'animation sélectionnée depuis le début. (Maj + D)" #: tools/editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Play selected animation from current pos. (D)" -msgstr "Lire l'animation sélectionnée à sa position actuelle. (D)" +msgstr "Lire l'animation sélectionnée depuis la position actuelle. (D)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Animation position (in seconds)." @@ -3709,11 +3719,11 @@ msgstr "Ajouter une entrée" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Clear Auto-Advance" -msgstr "" +msgstr "Réinitialiser la progression automatique" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Set Auto-Advance" -msgstr "" +msgstr "Définir la progression automatique" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Delete Input" @@ -3741,7 +3751,7 @@ msgstr "Nœud one-shot" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Mix Node" -msgstr "" +msgstr "Mélanger le nœud" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend2 Node" @@ -3868,7 +3878,7 @@ msgstr "Déplacer le pivot" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Action" -msgstr "" +msgstr "Déplacer l'action" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" @@ -3891,9 +3901,8 @@ msgid "Paste Pose" msgstr "Coller la pose" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Select Mode" -msgstr "Mode sélection (Q)" +msgstr "Sélectionner le mode" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" @@ -3914,9 +3923,8 @@ msgid "Alt+RMB: Depth list selection" msgstr "Alt + Bouton droit : sélection détaillée par liste" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move Mode" -msgstr "Move déplacement (W)" +msgstr "Mode déplacement" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -4000,9 +4008,8 @@ msgid "Clear Bones" msgstr "Effacer les os" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Bones" -msgstr "Créer les os" +msgstr "Afficher les os" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -4038,9 +4045,8 @@ msgid "Anchor" msgstr "Ancre" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert Keys" -msgstr "Animation Inserer une clé" +msgstr "Insérer des clefs" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" @@ -4066,6 +4072,53 @@ msgstr "Définir une valeur" msgid "Snap (Pixels):" msgstr "Aligner (pixels) :" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Add %s" +msgstr "Tout ajouter" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Créer un nœud" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Erreur d'instanciation de la scène depuis %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "OK :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "Pas de parent dans lequel instancier l'enfant." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" +"Cette opération ne peut être réalisée uniquement avec un seul nœud " +"sélectionné." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Changer la valeur par défaut" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4364,7 +4417,7 @@ msgstr "Créer un polygone de navigation" #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Remove Poly And Point" -msgstr "" +msgstr "Supprimer le polygone et le point" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Error loading image:" @@ -4388,7 +4441,7 @@ msgstr "Charger le masque d'émission" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Generated Point Count:" -msgstr "" +msgstr "Compte de points générés:" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry." @@ -4693,21 +4746,19 @@ msgstr "Erreur d'importation" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Import Theme" -msgstr "Improter un thème" +msgstr "Importer un thème" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save Theme As.." msgstr "Enregistrer le thème sous…" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Next script" -msgstr "Créer un script" +msgstr "Script suivant" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Previous script" -msgstr "Répertoire précédent" +msgstr "Script précédent" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/project_export.cpp @@ -4749,14 +4800,12 @@ msgid "Save Theme As" msgstr "Enregistrer le thème sous" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close Docs" -msgstr "Cloner en dessous" +msgstr "Fermer les documentations" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "Fermer" +msgstr "Fermer tout" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp @@ -4871,9 +4920,8 @@ msgstr "" "qui ils appartiennent est ouverte" #: tools/editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" -msgstr "Couleur" +msgstr "Prélever une couleur" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" @@ -4946,18 +4994,6 @@ msgstr "Aller à la ligne…" msgid "Contextual Help" msgstr "Aide contextuelle" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Vertex" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "Fragment" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "Éclairage" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Modifier une constante scalaire" @@ -4988,15 +5024,15 @@ msgstr "Modifier un opérateur RVB" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Toggle Rot Only" -msgstr "" +msgstr "Basculer seulement la rotation" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Function" -msgstr "" +msgstr "Modifier une fonction scalaire" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Function" -msgstr "" +msgstr "Modifier une fonction vecteur" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Uniform" @@ -5048,27 +5084,27 @@ msgstr "Changer le nom de l'entrée" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Connect Graph Nodes" -msgstr "" +msgstr "Connecter les nœuds de graphe" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Disconnect Graph Nodes" -msgstr "" +msgstr "Déconnecter les nœuds de graphe" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Remove Shader Graph Node" -msgstr "" +msgstr "Supprimer le nœud de graphe Shader" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Move Shader Graph Node" -msgstr "" +msgstr "Déplacer le nœud de graphe Shader" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Duplicate Graph Node(s)" -msgstr "" +msgstr "Dupliquer le(s) nœud(s) de graphe" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Delete Shader Graph Node(s)" -msgstr "" +msgstr "Effacer le(s) nœud(s) de graphe Shader" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Error: Cyclic Connection Link" @@ -5080,7 +5116,7 @@ msgstr "Erreur : connexions d'entrée manquantes" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Add Shader Graph Node" -msgstr "" +msgstr "Ajouter un nœud de graphe Shader" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" @@ -5108,7 +5144,7 @@ msgstr "Transformation sur l'axe Z." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Plane Transform." -msgstr "" +msgstr "Transformation du plan de vue." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scaling to %s%%." @@ -5219,58 +5255,48 @@ msgid "Scale Mode (R)" msgstr "Mode de mise à l'échelle (R)" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Bottom View" -msgstr "Vue de dessous." +msgstr "Vue de dessous" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Top View" -msgstr "Vue de dessus." +msgstr "Vue de dessus" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Rear View" -msgstr "Vue arrière." +msgstr "Vue arrière" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Front View" -msgstr "Vue avant." +msgstr "Vue avant" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Left View" -msgstr "Vue de gauche." +msgstr "Vue de gauche" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Right View" -msgstr "Vue de droite." +msgstr "Vue de droite" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Switch Perspective/Orthogonal view" msgstr "Basculer entre la vue perspective et orthogonale" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Insert Animation Key" -msgstr "Coller l'animation" +msgstr "Insérer une clef d'animation" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Origin" -msgstr "Afficher l'origine" +msgstr "Focaliser l'origine" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Selection" -msgstr "Mettre à l'échelle la sélection" +msgstr "Focaliser la sélection" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Align Selection With View" -msgstr "Aligner avec la vue" +msgstr "Aligner la sélection avec la vue" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform" @@ -5430,7 +5456,7 @@ msgstr "Ajouter vide" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "Modifier la boucle d'animation" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation FPS" @@ -5473,32 +5499,28 @@ msgid "StyleBox Preview:" msgstr "Aperçu de la StyleBox :" #: tools/editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Snap Mode:" -msgstr "Mode d'exécution :" +msgstr "Mode d'aimantation :" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "<None>" msgstr "<Aucun>" #: tools/editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Pixel Snap" -msgstr "Aligner au pixel près" +msgstr "Aimanter au pixel" #: tools/editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Grid Snap" -msgstr "Pas de la grille :" +msgstr "Aimanter à la grille" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" -msgstr "" +msgstr "Coupe automatique" #: tools/editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Offset:" -msgstr "Décalage de la grille :" +msgstr "Décalage:" #: tools/editor/plugins/texture_region_editor_plugin.cpp #, fuzzy @@ -5506,14 +5528,12 @@ msgid "Step:" msgstr "Pas (s) :" #: tools/editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Separation:" -msgstr "Sections :" +msgstr "Séparation:" #: tools/editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Texture Region" -msgstr "Éditeur de région de texture" +msgstr "Région de texture" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Texture Region Editor" @@ -5537,9 +5557,8 @@ msgid "Remove Item" msgstr "Supprimer l'item" #: tools/editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "Enregistrer le thème" +msgstr "Thème" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5738,6 +5757,71 @@ msgid "No exporter for platform '%s' yet." msgstr "Pas d'exportateur pour la plate-forme « %s » actuellement." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Créer une nouvelle ressource" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Nom valide" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Transition" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "État :" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Mot de passe :" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Caractères valides :" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Nouveau nom :" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Inclure" @@ -6045,9 +6129,8 @@ msgid "Install Project:" msgstr "Projets récents :" #: tools/editor/project_manager.cpp -#, fuzzy msgid "Install" -msgstr "Instance" +msgstr "Installer" #: tools/editor/project_manager.cpp msgid "Browse" @@ -6085,6 +6168,8 @@ msgid "" "You are about the scan %s folders for existing Godot projects. Do you " "confirm?" msgstr "" +"Vous êtes sur le point de scanner les %s de dossiers pour les projets Godot " +"existants. Est-ce que vous confirmez ?" #: tools/editor/project_manager.cpp msgid "Project Manager" @@ -6103,9 +6188,8 @@ msgid "Scan" msgstr "Scanner" #: tools/editor/project_manager.cpp -#, fuzzy msgid "Select a Folder to Scan" -msgstr "Sélectionner un nœud" +msgstr "Sélectionnez un dossier à scanner" #: tools/editor/project_manager.cpp msgid "New Project" @@ -6212,10 +6296,6 @@ msgid "Erase Input Action Event" msgstr "Effacer l'événement d'action d'entrée" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "Mode persistant" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Erreur d'enregistrement des paramètres." @@ -6359,7 +6439,7 @@ msgstr "Fichier…" msgid "Dir.." msgstr "Répertoire…" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Charger" @@ -6368,9 +6448,8 @@ msgid "Assign" msgstr "Assigner" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "Créer un script" +msgstr "Nouveau script" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6393,22 +6472,16 @@ msgid "Properties:" msgstr "Propriétés :" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Global" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "Sections :" #: tools/editor/property_selector.cpp -#, fuzzy msgid "Select Property" -msgstr "Sélectionner des points" +msgstr "Sélectionnez une propriété" #: tools/editor/property_selector.cpp -#, fuzzy msgid "Select Method" -msgstr "Mode sélection (Q)" +msgstr "Sélectionner une méthode" #: tools/editor/pvrtc_compress.cpp msgid "Could not execute PVRTC tool:" @@ -6417,6 +6490,7 @@ msgstr "Impossible d'exécuter l'outil PVRTC :" #: tools/editor/pvrtc_compress.cpp msgid "Can't load back converted image using PVRTC tool:" msgstr "" +"L'image convertie n'a pas pu être rechargée en utilisant l'outil PVRTC:" #: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -6475,27 +6549,14 @@ msgid "Scene Run Settings" msgstr "Paramètres d'exécution de la scène" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "OK :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "Pas de parent dans lequel instancier l'enfant." - -#: tools/editor/scene_tree_dock.cpp -#, fuzzy msgid "No parent to instance the scenes at." -msgstr "Pas de parent dans lequel instancier l'enfant." +msgstr "Aucun parent dans lequel instancier les scènes." #: tools/editor/scene_tree_dock.cpp msgid "Error loading scene from %s" msgstr "Erreur de chargement de la scène depuis %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Erreur d'instanciation de la scène depuis %s" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "OK" @@ -6536,12 +6597,6 @@ msgid "This operation can't be done without a scene." msgstr "Cette opération ne peut être réalisée sans une scène." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" -"Cette opération ne peut être réalisée uniquement avec un seul nœud " -"sélectionné." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Cette opération ne peut être réalisée sur des scènes instanciées." @@ -6566,10 +6621,6 @@ msgid "Remove Node(s)" msgstr "Supprimer le(s) nœud(s)" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Créer un nœud" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6610,10 +6661,16 @@ msgid "Change Type" msgstr "Changer le type" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +#, fuzzy +msgid "Attach Script" msgstr "Ajouter un script" #: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Créer un script" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "Fusionner depuis la scène" @@ -6622,9 +6679,8 @@ msgid "Save Branch as Scene" msgstr "Sauvegarder la branche comme scène" #: tools/editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete (No Confirm)" -msgstr "Veuillez confirmer…" +msgstr "Effacer (pas de confirmation)" #: tools/editor/scene_tree_dock.cpp msgid "Add/Create a New Node" @@ -6640,16 +6696,13 @@ msgstr "" #: tools/editor/scene_tree_dock.cpp #, fuzzy -msgid "Create a new script for the selected node." -msgstr "Instancie la/les scènes sélectionnées en tant qu'enfant du nœud." +msgid "Attach a new or existing script for the selected node." +msgstr "Créer un nouveau script pour le nœud sélectionné." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Cet objet ne peut être rendu visible car son parent est caché. Affichez le " -"parent d'abord." +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear a script for the selected node." +msgstr "Créer un nouveau script pour le nœud sélectionné." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6744,6 +6797,11 @@ msgid "Could not create script in filesystem." msgstr "Impossible de créer le script dans le système de fichiers." #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Erreur de chargement de la scène depuis %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "Le chemin est vide" @@ -6756,16 +6814,18 @@ msgid "Invalid base path" msgstr "Chemin de base invalide" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "Le fichier existe" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Extension invalide" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Chemin valide" +#, fuzzy +msgid "Create new script" +msgstr "Créer un script" + +#: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Load existing script" +msgstr "Script suivant" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6776,7 +6836,8 @@ msgid "Built-In Script" msgstr "Script intégré" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +#, fuzzy +msgid "Attach Node Script" msgstr "Créer le script de nœud" #: tools/editor/script_editor_debugger.cpp @@ -6943,6 +7004,49 @@ msgstr "Changer la longueur d'une forme en rayon" msgid "Change Notifier Extents" msgstr "Changer les extents d'un notificateur" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Changer les extents d'un notificateur" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "La BakedLightInstance ne contient pas de ressource BakedLight." + +#~ msgid "Vertex" +#~ msgstr "Vertex" + +#~ msgid "Fragment" +#~ msgstr "Fragment" + +#~ msgid "Lighting" +#~ msgstr "Éclairage" + +#~ msgid "Toggle Persisting" +#~ msgstr "Mode persistant" + +#~ msgid "Global" +#~ msgstr "Global" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Cet objet ne peut être rendu visible car son parent est caché. Affichez " +#~ "le parent d'abord." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "Les chemins ne peuvent pas commencer par '/', les chemins absolus doivent " +#~ "commencer par 'res://', 'user://' ou 'local://'" + +#~ msgid "File exists" +#~ msgstr "Le fichier existe" + +#~ msgid "Valid path" +#~ msgstr "Chemin valide" + #~ msgid "Cannot go into subdir:" #~ msgstr "Impossible d'aller dans le sous-répertoire :" diff --git a/tools/translations/is.po b/tools/translations/hu.po index 2a2abb8df4..ef78f27138 100644 --- a/tools/translations/is.po +++ b/tools/translations/hu.po @@ -1,15 +1,21 @@ -# LANGUAGE translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Hungarian translation of the Godot Engine editor +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# Varga Dániel <danikah.danikah@gmail.com>, 2016. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"Language: is\n" +"PO-Revision-Date: 2016-11-11 18:19+0000\n" +"Last-Translator: Varga Dániel <danikah.danikah@gmail.com>\n" +"Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/" +"godot/hu/>\n" +"Language: hu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 2.9\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -26,12 +32,6 @@ msgid "step argument is zero!" msgstr "" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "" @@ -375,74 +375,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -550,10 +550,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -613,7 +609,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1756,6 +1753,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1823,7 +1824,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2048,7 +2051,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2728,6 +2733,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2955,6 +2961,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3854,6 +3864,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4718,18 +4771,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5492,6 +5533,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5951,10 +6050,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6098,7 +6193,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6131,10 +6226,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6211,14 +6302,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6227,10 +6310,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6269,10 +6348,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6297,10 +6372,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6339,7 +6410,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6365,13 +6440,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6467,6 +6540,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6479,15 +6556,15 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Create new script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6499,7 +6576,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6665,3 +6742,7 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" diff --git a/tools/translations/id.po b/tools/translations/id.po index 3f2ef7861f..917bd21e82 100644 --- a/tools/translations/id.po +++ b/tools/translations/id.po @@ -1,8 +1,9 @@ # Indonesian translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Abdul Aziz Muslim Alqudsy <abdul.aziz.muslim.alqudsy@gmail.com>, 2016. +# Andevid Dynmyn <doyan4forum@gmail.com>, 2016. # Andinawan Asa <asaandinawan@gmail.com>, 2016. # Khairul Hidayat <khairulcyber4rt@gmail.com>, 2016. # yursan9 <rizal.sagi@gmail.com>, 2016. @@ -10,15 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-08-27 02:11+0000\n" -"Last-Translator: yursan9 <rizal.sagi@gmail.com>\n" +"PO-Revision-Date: 2016-10-15 04:17+0000\n" +"Last-Translator: Andevid Dynmyn <doyan4forum@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.8-dev\n" +"X-Generator: Weblate 2.9-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -36,12 +37,6 @@ msgid "step argument is zero!" msgstr "Langkah argumen adalah nol!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp #, fuzzy msgid "Not a script with an instance" msgstr "Skrip tidak mempunyai turunannya" @@ -404,76 +399,76 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Nama tidak sah." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "Ukuran font tidak sah." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -620,10 +615,6 @@ msgstr "" "VisibilityEnable2D bekerja dengan sangat baik ketika digunakan dengan " "mengedit root scene secara langsung sebagai parent." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance tidak berisi resource BakedLight." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -706,7 +697,8 @@ msgstr "" msgid "Cancel" msgstr "Batal" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "Oke" @@ -1904,6 +1896,11 @@ msgid "Constants:" msgstr "Konstanta:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Deskripsi Singkat:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Deskripsi Metode:" @@ -1971,7 +1968,9 @@ msgstr "Error menyimpan resource!" msgid "Save Resource As.." msgstr "Simpan Resource Sebagai.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp #, fuzzy msgid "I see.." msgstr "Aku tahu.." @@ -2212,7 +2211,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Pilih sebuah Scene Utama" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp #, fuzzy msgid "Ugh" msgstr "Wadoo" @@ -2896,6 +2897,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -3123,6 +3125,11 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +#, fuzzy +msgid "Root Node Name:" +msgstr "Nama Node:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -4022,6 +4029,50 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Ubah Tipe Nilai Array" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4887,18 +4938,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5661,6 +5700,67 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Buat Folder" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Transisi" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Karakter sah:" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6120,10 +6220,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6267,7 +6363,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6301,10 +6397,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6383,14 +6475,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6399,10 +6483,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6441,10 +6521,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6469,10 +6545,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6511,8 +6583,14 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +#, fuzzy +msgid "Attach Script" +msgstr "Scene Baru" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Scene Baru" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6537,13 +6615,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6639,6 +6715,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Error memuat font." + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6651,15 +6732,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "Buat Subskribsi" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6671,8 +6753,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "Scene Baru" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6795,8 +6878,9 @@ msgid "Live Edit Root:" msgstr "" #: tools/editor/script_editor_debugger.cpp +#, fuzzy msgid "Set From Tree" -msgstr "" +msgstr "Menyetel Dari Keturunan" #: tools/editor/settings_config_dialog.cpp msgid "Shortcuts" @@ -6804,19 +6888,21 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Light Radius" -msgstr "" +msgstr "Ganti Radius Lampu" #: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy msgid "Change Camera FOV" -msgstr "" +msgstr "Ganti FOV Kamera" #: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy msgid "Change Camera Size" -msgstr "" +msgstr "Ganti Ukuran Kamera" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Sphere Shape Radius" -msgstr "" +msgstr "Ganti Radius Bentuk Bola" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Box Shape Extents" @@ -6838,6 +6924,21 @@ msgstr "" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance tidak berisi resource BakedLight." + +#, fuzzy +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "Path tidak bisa diawali dengan '/', tetapi absolut path harus diawali " +#~ "dengan 'res://', 'user://', atau 'local://'" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/it.po b/tools/translations/it.po index 1fa6a89605..f49c953a7d 100644 --- a/tools/translations/it.po +++ b/tools/translations/it.po @@ -1,5 +1,5 @@ # Italian translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Dario Bonfanti <bonfi.96@hotmail.it>, 2016. @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-09-10 22:09+0000\n" +"PO-Revision-Date: 2016-11-22 20:27+0000\n" "Last-Translator: Dario Bonfanti <bonfi.96@hotmail.it>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.8\n" +"X-Generator: Weblate 2.10-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -36,12 +36,6 @@ msgid "step argument is zero!" msgstr "step argument è zero!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Non è uno script con un istanza" @@ -171,9 +165,8 @@ msgid "Editing Signal:" msgstr "Modifica Segnale:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "Cambia Tipo" +msgstr "Cambia Espressione" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -224,40 +217,36 @@ msgid "Add Setter Property" msgstr "Aggiungi Proprietà Setter" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "Copia Animazione" +msgstr "Condizione" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "Sequenza" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Switch" -msgstr "Pitch" +msgstr "Interruttore" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Iteratore" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "Mentre" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Return" -msgstr "Ritorna:" +msgstr "Ritorna" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" msgstr "Chiama" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Get" -msgstr "Set" +msgstr "Get" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp @@ -399,87 +388,99 @@ msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "appena premuto" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "appena rilasciato" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"Impossibile leggere il file del certificatio. Il percorso e la pasword sono " +"entrambi corretti?" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "Errore di scrittura del PCK del progetto!" +msgstr "Errore in creazione del signature object." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "Errore di creazione della firma del pacchetto." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"Nessun template di esportazione trovato.\n" +"Scarica ed installa i template di esportazione." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "Pacchetto di debug personalizzato non trovato." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "Pacchetto di release personalizzato non trovato." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "Nome Invalido." +msgstr "Nome unico invalido." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "Dimensione font Invalida." +msgstr "GUID prodotto invalido." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "Percorso di base invalido" +msgstr "GUID publisher invalido." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "Sorgente font personalizzato invalido." +msgstr "Colore di background invalido." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" +"Dimensioni dell'immagine dello Store Logo invalide (dovrebbero essere 50x50)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" +"Dimensioni non valide dell'immagine del logo quadrato 44x44 (dovrebbero " +"essere 44x44)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" +"Dimensioni non valide dell'immagine del logo quadrato 71x71 (dovrebbero " +"essere 71x71)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" +"Dimensioni non valide dell'immagine del logo quadrato 150x150 (dovrebbero " +"essere 150x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" +"Dimensioni non valide dell'immagine del logo quadrato 310x310 (dovrebbero " +"essere 310x310)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" +"Dimensioni non valide dell'immagine del logo quadrato 310x150 (dovrebbero " +"essere 310x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" +"Dimensioni non valide dell'immagine dello splash screen (dovrebbero essere " +"620x300)." #: scene/2d/animated_sprite.cpp msgid "" @@ -626,10 +627,6 @@ msgstr "" "VisibilityEnable2D funziona al meglio quando usato direttamente come " "genitore con il root della scena modificata." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance non contiene una risorsa BakedLight." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -678,11 +675,10 @@ msgstr "" "Fornisce solamente dati per la navigazione." #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." msgstr "" -"La proprietà path deve puntare a un nodo Particles2D valido per poter " -"funzionare." +"La proprietà path deve puntare ad un nodo Spaziale (Spatial) valido per " +"poter funzionare." #: scene/3d/scenario_fx.cpp msgid "" @@ -711,7 +707,8 @@ msgstr "" msgid "Cancel" msgstr "Annulla" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -1457,6 +1454,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"Metodo di destinazione non trovato! Specifica un metodo valido o annetti uno " +"script al nodo di destinazione." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" @@ -1875,6 +1874,11 @@ msgid "Constants:" msgstr "Costanti:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Breve Descrizione:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Descrizione Metodo:" @@ -1942,7 +1946,9 @@ msgstr "Errore salvando la Risorsa!" msgid "Save Resource As.." msgstr "Salva Risorsa Come.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Capisco.." @@ -2182,7 +2188,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Scegli una Scena Principale" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Ugh" @@ -2503,9 +2511,8 @@ msgid "Editor Layout" msgstr "Layout dell'Editor" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" -msgstr "Modalità Fullscreen" +msgstr "Abilita/Disabilita Fullscreen" #: tools/editor/editor_node.cpp msgid "Install Export Templates" @@ -2533,7 +2540,7 @@ msgstr "Aggiorna Cambiamenti" #: tools/editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "Disabilita lo Spinner di Update" #: tools/editor/editor_node.cpp msgid "Inspector" @@ -2890,6 +2897,7 @@ msgstr "Texture Sorgenti:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Percorso di destinazione:" @@ -3121,6 +3129,10 @@ msgid "Auto" msgstr "Auto" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "Nome Nodo di Root:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "I File Seguenti sono Mancanti:" @@ -3964,9 +3976,8 @@ msgid "Clear Bones" msgstr "Elimina Ossa" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Bones" -msgstr "Crea Ossa" +msgstr "Mostra Ossa" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -4029,6 +4040,51 @@ msgstr "Imposta un Valore" msgid "Snap (Pixels):" msgstr "Snap (Pixels):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "Aggiungi %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "Aggiungendo %s..." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Crea Nodo" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Errore istanziamento scena da %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "OK :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "Nessun genitore del quale istanziare un figlio." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Questa operazione richiede un solo nodo selezionato." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "Cambia tipo di default" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" +"Premi & Trascina + Shift : Aggiungi nodo come fratello\n" +"Premi & Trascina + Alt : Cambia tipo del nodo" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4709,9 +4765,8 @@ msgid "Close Docs" msgstr "Chiudi Documentazione" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "Chiudi" +msgstr "Chiudi Tutto" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp @@ -4826,9 +4881,8 @@ msgstr "" "cui appartengono è caricata" #: tools/editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" -msgstr "Colore" +msgstr "Scegli Colore" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" @@ -4901,18 +4955,6 @@ msgstr "Vai a Linea.." msgid "Contextual Help" msgstr "Aiuto Contestuale" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Vertice" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "Frammento" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "Illuminazione" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Cambia Costante Scalare" @@ -5206,9 +5248,8 @@ msgid "Insert Animation Key" msgstr "Inserisci Key Animazione" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Origin" -msgstr "Visualizza Origine" +msgstr "Focalizza su Origine" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Selection" @@ -5476,9 +5517,8 @@ msgid "Remove Item" msgstr "Rimuovi Elemento" #: tools/editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "Salva Tema" +msgstr "Tema" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5677,6 +5717,71 @@ msgid "No exporter for platform '%s' yet." msgstr "Per ora non vi è esportatore per la piattaforma '%s'." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Crea Nuova Risorsa" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Nome valido" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Transizione" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Stato:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Password:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Caratteri validi:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Nuovo nome:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Includi" @@ -6142,10 +6247,6 @@ msgid "Erase Input Action Event" msgstr "Elimina Evento di Azione Input" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "Attiva Persistenza" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Errore nel salvare le impostazioni." @@ -6289,7 +6390,7 @@ msgstr "File.." msgid "Dir.." msgstr "Dir.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Carica" @@ -6298,9 +6399,8 @@ msgid "Assign" msgstr "Assegna" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "Script successivo" +msgstr "Nuovo Script" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6323,10 +6423,6 @@ msgid "Properties:" msgstr "Proprietà:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Globale" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "Sezioni:" @@ -6403,14 +6499,6 @@ msgid "Scene Run Settings" msgstr "Impostazioni Esecuzione Scena" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "OK :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "Nessun genitore del quale istanziare un figlio." - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "Nessun genitore nel quale istanziare una scena." @@ -6419,10 +6507,6 @@ msgid "Error loading scene from %s" msgstr "Errore caricamento scena da %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Errore istanziamento scena da %s" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Ok" @@ -6463,10 +6547,6 @@ msgid "This operation can't be done without a scene." msgstr "Questa operazione non può essere eseguita senza una scena." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "Questa operazione richiede un solo nodo selezionato." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Questa operazione no può essere eseguita su scene istanziate." @@ -6491,10 +6571,6 @@ msgid "Remove Node(s)" msgstr "Rimuovi nodo(i)" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Crea Nodo" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6535,8 +6611,12 @@ msgid "Change Type" msgstr "Cambia Tipo" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "Aggiungi Script" +msgid "Attach Script" +msgstr "Allega Script" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "Svuota Script" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6563,16 +6643,12 @@ msgstr "" "root esiste." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." -msgstr "Crea un nuovo script per il nodo selezionato." +msgid "Attach a new or existing script for the selected node." +msgstr "Allega un nuovo script o uno esistente al nodo selezionato." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Questo elemento non può essere reso visibile perchè il genitore è nascosto. " -"Rivela prima il genitore." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "Svuota uno script per il nodo selezionato." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6667,6 +6743,10 @@ msgid "Could not create script in filesystem." msgstr "Impossibile creare script in filesystem." #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "Errore caricamento script da %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "Percorso vuoto" @@ -6679,16 +6759,16 @@ msgid "Invalid base path" msgstr "Percorso di base invalido" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "File esistente" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Estensione Invalida" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Percorso valido" +msgid "Create new script" +msgstr "Crea nuovo script" + +#: tools/editor/script_create_dialog.cpp +msgid "Load existing script" +msgstr "Carica script esistente" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6699,8 +6779,8 @@ msgid "Built-In Script" msgstr "Built-In Script" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "Crea Script Nodo" +msgid "Attach Node Script" +msgstr "Allega Script Nodo" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6866,6 +6946,49 @@ msgstr "Cambia lunghezza Ray Shape" msgid "Change Notifier Extents" msgstr "Cambia Estensione di Notifier" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Cambia Estensione di Notifier" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance non contiene una risorsa BakedLight." + +#~ msgid "Vertex" +#~ msgstr "Vertice" + +#~ msgid "Fragment" +#~ msgstr "Frammento" + +#~ msgid "Lighting" +#~ msgstr "Illuminazione" + +#~ msgid "Toggle Persisting" +#~ msgstr "Attiva Persistenza" + +#~ msgid "Global" +#~ msgstr "Globale" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Questo elemento non può essere reso visibile perchè il genitore è " +#~ "nascosto. Rivela prima il genitore." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "I percorsi non possono iniziare per '/', i percorsi assoluti devono " +#~ "iniziare per 'res://', 'user://', oppure 'local://'" + +#~ msgid "File exists" +#~ msgstr "File esistente" + +#~ msgid "Valid path" +#~ msgstr "Percorso valido" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/ja.po b/tools/translations/ja.po index 25003026c1..279f59c9c8 100644 --- a/tools/translations/ja.po +++ b/tools/translations/ja.po @@ -1,21 +1,22 @@ # Japanese translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # +# akirakido <achts.y@gmail.com>, 2016. # hopping tappy (たっぴさん) <hopping.tappy@gmail.com>, 2016. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-07-16 08:16+0000\n" -"Last-Translator: hopping tappy (たっぴさん) <hopping.tappy@gmail.com>\n" +"PO-Revision-Date: 2016-11-12 15:11+0000\n" +"Last-Translator: akirakido <achts.y@gmail.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" "Language: ja\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.8-dev\n" +"X-Generator: Weblate 2.9\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -34,12 +35,6 @@ msgid "step argument is zero!" msgstr "ステップ引数はゼロです!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "インスタンスを使用していないスクリプトです" @@ -400,76 +395,76 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "無効なフォント サイズです。" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "無効なフォント サイズです。" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -612,10 +607,6 @@ msgstr "" "VisibilityEnable2D は、親として直接編集されたシーンのルートを使用する場合に最" "適です。" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -698,7 +689,8 @@ msgstr "" msgid "Cancel" msgstr "キャンセル" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "決定" @@ -1851,6 +1843,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1919,7 +1915,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2154,7 +2152,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2835,6 +2835,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -3062,6 +3063,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3963,6 +3968,50 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "配列の値の種類の変更" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4829,18 +4878,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5603,6 +5640,66 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "フォルダを作成" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "遷移" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -6062,10 +6159,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6209,7 +6302,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6242,10 +6335,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6324,14 +6413,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6340,10 +6421,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6382,10 +6459,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6410,10 +6483,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6452,7 +6521,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6479,13 +6552,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6581,6 +6652,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "フォント読み込みエラー。" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6593,15 +6669,16 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "フォルダを作成" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6613,7 +6690,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6779,3 +6856,15 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#, fuzzy +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "パスは「/」で始めることができません。絶対パスは必ず「res://」「user://」" +#~ "「local://」 で始まる必要があります。" diff --git a/tools/translations/ko.po b/tools/translations/ko.po index a4d24d8b52..ea2b130d37 100644 --- a/tools/translations/ko.po +++ b/tools/translations/ko.po @@ -1,5 +1,5 @@ # Korean translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # 박한얼 (volzhs) <volzhs@gmail.com>, 2016. @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-09-26 13:04+0000\n" +"PO-Revision-Date: 2016-11-23 14:38+0000\n" "Last-Translator: 박한얼 <volzhs@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.9-dev\n" +"X-Generator: Weblate 2.10-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -35,12 +35,6 @@ msgid "step argument is zero!" msgstr "스텝 인자가 제로입니다!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "스크립트의 인스턴스가 아님" @@ -165,9 +159,8 @@ msgid "Editing Signal:" msgstr "시그널 편집:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "타입 변경" +msgstr "표현식 변경" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -214,18 +207,16 @@ msgid "Add Setter Property" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "애니메이션 복사" +msgstr "조건" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Switch" -msgstr "피치" +msgstr "스위치" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" @@ -236,18 +227,16 @@ msgid "While" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Return" -msgstr "리턴:" +msgstr "리턴" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" msgstr "호출" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Get" -msgstr "설정" +msgstr "얻기" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp @@ -391,81 +380,79 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" -msgstr "" +msgstr "인증서 파일을 읽을 수 없습니다. 경로와 비밀번호가 정확합니까?" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "프로젝트 PCK 작성중 에러!" +msgstr "서명 오브젝트 생성중 에러." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "패키지 서명을 생성하는 중 에러가 발생했습니다." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"내보내기 템플릿을 찾을 수 없습니다.\n" +"내보내기 템플릿을 다운로드하여 설치하십시요." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "커스텀 디버그 패키지를 찾을 수 없습니다." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "커스텀 릴리즈 패키지를 찾을 수 없습니다." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "유효하지 않은 이름." +msgstr "유효하지 않은 고유 이름." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "유요하지 않은 폰트 사이즈." +msgstr "유요하지 않은 프로덕트 GUID." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "기본 경로가 유요하지 않음" +msgstr "유요하지 않은 퍼블리셔 GUID." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "사용자 지정 폰트 소스가 유효하지 않습니다." +msgstr "유요하지 않은 배경 색상." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "유효하지 않은 로고 이미지 크기입니다 (50x50 이어야 합니다)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "" +msgstr "유효하지 않은 로고 이미지 크기입니다 (44x44 이어야 합니다)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "" +msgstr "유효하지 않은 로고 이미지 크기입니다 (71x71 이어야 합니다)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "" +msgstr "유효하지 않은 로고 이미지 크기입니다 (150x150 이어야 합니다)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "" +msgstr "유효하지 않은 로고 이미지 크기입니다 (310x310 이어야 합니다)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "" +msgstr "유효하지 않은 로고 이미지 크기입니다 (310x150 이어야 합니다)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" +"유효하지 않은 스플래쉬 스크린 이미지 크기입니다 (620x300 이어야 합니다)." #: scene/2d/animated_sprite.cpp msgid "" @@ -597,10 +584,6 @@ msgstr "" "VisibilityEnable2D는 편집 씬의 루트의 하위 노드로 추가할 때 가장 잘 동작합니" "다." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance가 BakedLight 리소스를 가지고 있지 않습니다." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -648,9 +631,8 @@ msgstr "" "게이션 데이타만을 제공합니다." #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." -msgstr "Path 속성은 유효한 Particles2D 노드를 가리켜야 합니다." +msgstr "Path 속성은 유효한 Spatial 노드를 가리켜야 합니다." #: scene/3d/scenario_fx.cpp msgid "" @@ -677,7 +659,8 @@ msgstr "" msgid "Cancel" msgstr "취소" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "확인" @@ -1195,7 +1178,7 @@ msgstr "최적화" #: tools/editor/animation_editor.cpp msgid "Select an AnimationPlayer from the Scene Tree to edit animations." -msgstr "" +msgstr "애니메이션 편집을 위해서는 씬에서 AnimationPlayer를 선택해야 합니다." #: tools/editor/animation_editor.cpp msgid "Key" @@ -1402,7 +1385,7 @@ msgstr "축소" #: tools/editor/code_editor.cpp msgid "Reset Zoom" -msgstr "" +msgstr "줌 리셋" #: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp msgid "Line:" @@ -1421,6 +1404,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"타겟 메소드를 찾을 수 없습니다! 유효한 메소드를 지정하거나, 타겟 노드에 스크" +"립트를 추가하세요." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" @@ -1834,6 +1819,11 @@ msgid "Constants:" msgstr "상수:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "간단한 설명:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "함수 설명:" @@ -1901,7 +1891,9 @@ msgstr "리소스 저장 중 에러!" msgid "Save Resource As.." msgstr "리소스를 다른 이름으로 저장.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "알겠습니다.." @@ -2135,7 +2127,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "메인 씬 선택" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "오우" @@ -2456,9 +2450,8 @@ msgid "Editor Layout" msgstr "에디터 레이아웃" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" -msgstr "전체화면 모드" +msgstr "전체화면 토글" #: tools/editor/editor_node.cpp msgid "Install Export Templates" @@ -2486,7 +2479,7 @@ msgstr "변경사항만 갱신" #: tools/editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "업데이트 스피너 비활성화" #: tools/editor/editor_node.cpp msgid "Inspector" @@ -2838,6 +2831,7 @@ msgstr "소스 텍스쳐:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "대상 경로:" @@ -3069,6 +3063,10 @@ msgid "Auto" msgstr "자동" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "루트 노드 이름:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "다음의 파일들이 빠져있습니다:" @@ -3909,9 +3907,8 @@ msgid "Clear Bones" msgstr "Bones 없애기" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Bones" -msgstr "Bones 만들기" +msgstr "뼈대 보기" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -3974,6 +3971,51 @@ msgstr "값 설정" msgid "Snap (Pixels):" msgstr "스냅 (픽셀):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "%s 추가" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "%s 추가중..." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "노드 생성" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "'%s' 로부터 씬 인스턴스 중 에러" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "넹 :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "선택된 부모 노드가 없어서 자식노드를 인스턴스할 수 없습니다." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "이 작업은 하나의 선택된 노드를 필요로 합니다." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "기본 타입 변경" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" +"드래그 & 드랍 + 쉬프트 : 형제 노드로 추가\n" +"드래그 & 드랍 + 알트 : 노드 타입 변경" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4652,9 +4694,8 @@ msgid "Close Docs" msgstr "문서 닫기" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "닫기" +msgstr "모두 닫기" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp @@ -4767,9 +4808,8 @@ msgid "" msgstr "내장 스크립트는 종속된 씬이 열린 상태에서만 편집이 가능합니다" #: tools/editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" -msgstr "색깔" +msgstr "색상 선택" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" @@ -4842,18 +4882,6 @@ msgstr "라인으로 이동.." msgid "Contextual Help" msgstr "도움말 보기" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "버텍스" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "프래그먼트" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "라이팅" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Scalar 상수 변경" @@ -5147,7 +5175,6 @@ msgid "Insert Animation Key" msgstr "애니메이션 키 삽입" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Origin" msgstr "원점 보기" @@ -5417,9 +5444,8 @@ msgid "Remove Item" msgstr "아이템 삭제" #: tools/editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "테마 저장" +msgstr "테마" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5618,6 +5644,71 @@ msgid "No exporter for platform '%s' yet." msgstr "'%s' 플랫폼으로 내보내기 위한 템플릿 파일이 없습니다." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "새 리소스 만들기" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "유요한 이름" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "전환" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "상태:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "암호:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "유효한 문자:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "새 이름:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "포함" @@ -5951,7 +6042,7 @@ msgstr "" msgid "" "You are about the scan %s folders for existing Godot projects. Do you " "confirm?" -msgstr "" +msgstr "%s 에서 기존 Godot 프로젝트들을 스캔하려고 합니다. 진행하시겠습니까?" #: tools/editor/project_manager.cpp msgid "Project Manager" @@ -6078,10 +6169,6 @@ msgid "Erase Input Action Event" msgstr "입력 액션 이벤트 삭제" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "지속 전환" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "설정 저장 중 에러." @@ -6225,7 +6312,7 @@ msgstr "파일.." msgid "Dir.." msgstr "디렉토리.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "로드" @@ -6234,9 +6321,8 @@ msgid "Assign" msgstr "할당" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "다음 스크립트" +msgstr "새 스크립트" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6259,10 +6345,6 @@ msgid "Properties:" msgstr "속성:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Global" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "부문:" @@ -6339,14 +6421,6 @@ msgid "Scene Run Settings" msgstr "씬 실행 설정" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "넹 :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "선택된 부모 노드가 없어서 자식노드를 인스턴스할 수 없습니다." - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "씬을 인스턴스할 수 있는 부모가 없습니다." @@ -6355,10 +6429,6 @@ msgid "Error loading scene from %s" msgstr "'%s' 로부터 씬 로딩 중 에러" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "'%s' 로부터 씬 인스턴스 중 에러" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "확인" @@ -6397,10 +6467,6 @@ msgid "This operation can't be done without a scene." msgstr "이 작업은 씬 없이는 불가합니다." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "이 작업은 하나의 선택된 노드를 필요로 합니다." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "이 작업은 인스턴스된 씬에서는 불가합니다." @@ -6425,10 +6491,6 @@ msgid "Remove Node(s)" msgstr "노드 삭제" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "노드 생성" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6468,8 +6530,12 @@ msgid "Change Type" msgstr "타입 변경" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "스크립트 추가" +msgid "Attach Script" +msgstr "스크립트 붙이기" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "스크립트 제거" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6495,16 +6561,12 @@ msgstr "" "씬 파일을 노드로 추가합니다. 루트 노드가 없을 경우, 상속씬으로 만들어집니다." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." -msgstr "선택된 노드에 새로운 스크립트를 생성합니다." +msgid "Attach a new or existing script for the selected node." +msgstr "선택된 노드에 새로운 스크립트를 생성하거나 기존 스크립트를 로드합니다." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"부모 노드가 숨겨져 있기 때문에 이 항목을 보이도록 만들 수 없습니다. 부모 노드" -"를 먼저 보이도록 하세요." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "선택된 노드의 스크립트를 제거합니다." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6599,6 +6661,10 @@ msgid "Could not create script in filesystem." msgstr "파일 시스템에 스크립트를 생성할 수 없습니다." #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "'%s' 스크립트 로딩 중 에러" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "경로가 비어 있음" @@ -6611,16 +6677,16 @@ msgid "Invalid base path" msgstr "기본 경로가 유요하지 않음" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "파일이 존재함" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "확장자가 유요하지 않음" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "유요한 경로" +msgid "Create new script" +msgstr "새 스크립트 만들기" + +#: tools/editor/script_create_dialog.cpp +msgid "Load existing script" +msgstr "기존 스크립트 로드하기" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6631,8 +6697,8 @@ msgid "Built-In Script" msgstr "내장 스크립트" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "노드 스크립트 생성" +msgid "Attach Node Script" +msgstr "노드 스크립트 붙이기" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6798,6 +6864,49 @@ msgstr "Ray Shape 길이 변경" msgid "Change Notifier Extents" msgstr "Notifier 범위 변경" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Notifier 범위 변경" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance가 BakedLight 리소스를 가지고 있지 않습니다." + +#~ msgid "Vertex" +#~ msgstr "버텍스" + +#~ msgid "Fragment" +#~ msgstr "프래그먼트" + +#~ msgid "Lighting" +#~ msgstr "라이팅" + +#~ msgid "Toggle Persisting" +#~ msgstr "지속 전환" + +#~ msgid "Global" +#~ msgstr "Global" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "부모 노드가 숨겨져 있기 때문에 이 항목을 보이도록 만들 수 없습니다. 부모 " +#~ "노드를 먼저 보이도록 하세요." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "경로는 '/'로 시작할 수 없습니다. 'res://', 'user://', 또는 'local://'로 시" +#~ "작하는 절대 경로를 사용해야 합니다" + +#~ msgid "File exists" +#~ msgstr "파일이 존재함" + +#~ msgid "Valid path" +#~ msgstr "유요한 경로" + #~ msgid "Cannot go into subdir:" #~ msgstr "하위 디렉토리로 이동할 수 없습니다:" diff --git a/tools/translations/nb.po b/tools/translations/nb.po index d8d1a2771b..ff659eae8b 100644 --- a/tools/translations/nb.po +++ b/tools/translations/nb.po @@ -1,5 +1,5 @@ # Norwegian Bokmål translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Jørgen Aarmo Lund <jorgen.aarmo@gmail.com>, 2016. @@ -32,12 +32,6 @@ msgid "step argument is zero!" msgstr "" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "" @@ -381,74 +375,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -556,10 +550,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -619,7 +609,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1762,6 +1753,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1829,7 +1824,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2054,7 +2051,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2734,6 +2733,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2961,6 +2961,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3860,6 +3864,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4724,18 +4771,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5498,6 +5533,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5957,10 +6050,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6104,7 +6193,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6137,10 +6226,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6217,14 +6302,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6233,10 +6310,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6275,10 +6348,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6303,10 +6372,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6345,7 +6410,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6371,13 +6440,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6473,6 +6540,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6485,15 +6556,15 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Create new script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6505,7 +6576,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6671,3 +6742,7 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" diff --git a/tools/translations/pl.po b/tools/translations/pl.po index 78b1964fad..465fbe133d 100644 --- a/tools/translations/pl.po +++ b/tools/translations/pl.po @@ -1,9 +1,11 @@ # Polish translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # +# 8-bit Pixel <dawdejw@gmail.com>, 2016. # Adrian Węcławski <weclawskiadrian@gmail.com>, 2016. # Daniel Lewan <vision360.daniel@gmail.com>, 2016. +# Kajetan Kuszczyński <kajetanek99@gmail.com>, 2016. # Kamil Lewan <lewan.kamil@gmail.com>, 2016. # Karol Walasek <coreconviction@gmail.com>, 2016. # Mietek Szcześniak <ravaging@go2.pl>, 2016. @@ -13,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-08-16 18:01+0000\n" -"Last-Translator: Mietek Szcześniak <ravaging@go2.pl>\n" +"PO-Revision-Date: 2016-12-29 16:37+0000\n" +"Last-Translator: 8-bit Pixel <dawdejw@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -22,31 +24,26 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 2.8-dev\n" +"X-Generator: Weblate 2.11-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "Niepoprawny typ argumentu funkcji convert(), użyj stałej TYPE_*." +msgstr "Niepoprawny typ argumentu funkcji convert(), użyj stałych TYPE_*." #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "Brak miejsca dla bajtów dekodujących, lub zły format." +msgstr "" +"Niewystarczająca ilość bajtów dla bajtów dekodujących, albo zły format." #: modules/gdscript/gd_functions.cpp msgid "step argument is zero!" -msgstr "argument kroku jest zerowy!" - -#: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" +msgstr "argument kroku wynosi zero!" #: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" -msgstr "Nie jest to skrypt z instancją" +msgstr "To nie jest skrypt z instancją" #: modules/gdscript/gd_functions.cpp msgid "Not based on a script" @@ -402,79 +399,79 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Error creating the signature object." msgstr "Błąd przy eksporcie projektu!" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Niewłaściwa nazwa." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "Niepoprawny rozmiar fonta." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid publisher GUID." msgstr "Niepoprawna ścieżka bazowa" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid background color." msgstr "Nie rozpoznano typu czcionki." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -615,10 +612,6 @@ msgstr "" "VisibilityEnable2D działa najlepiej, gdy jest bezpośrednio pod korzeniem " "aktualnie edytowanej sceny." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -698,7 +691,8 @@ msgstr "" msgid "Cancel" msgstr "Anuluj" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -1854,6 +1848,11 @@ msgid "Constants:" msgstr "Stałe:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Krótki opis:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Opis Metody:" @@ -1921,7 +1920,9 @@ msgstr "Błąd podczas zapisu zasobu!" msgid "Save Resource As.." msgstr "Zapisz zasób jako..." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Widzę.." @@ -2159,7 +2160,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Wybierz główną scenę" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp #, fuzzy msgid "Ugh" msgstr "Błąd" @@ -2865,6 +2868,7 @@ msgstr "Źródło tekstury:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Ścieżka docelowa:" @@ -3094,6 +3098,11 @@ msgid "Auto" msgstr "Automatyczny" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +#, fuzzy +msgid "Root Node Name:" +msgstr "Nazwa węzła:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Brakuje następujących plików:" @@ -4002,6 +4011,51 @@ msgstr "Ustaw Wartość" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Add %s" +msgstr "Dodaj wszystko" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Utwórz węzeł" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "OK :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Zmień Wartość Domyślną" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4868,18 +4922,6 @@ msgstr "Przejdź do linii.." msgid "Contextual Help" msgstr "Pomoc kontekstowa" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Wierzchołek" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5643,6 +5685,71 @@ msgid "No exporter for platform '%s' yet." msgstr "Brak jeszcze eksportu dla platformy '%s'." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Utwórz nowy zasób" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Poprawna nazwa" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Przejście" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Status:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Hasło:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Dopuszczalne znaki:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Nowa nazwa:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Zawiera" @@ -6102,10 +6209,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Błąd zapisu ustawień." @@ -6249,7 +6352,7 @@ msgstr "Plik.." msgid "Dir.." msgstr "Katalog.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Wczytaj" @@ -6283,10 +6386,6 @@ msgid "Properties:" msgstr "Właściwości:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Globalne" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6322,7 +6421,7 @@ msgstr "" #: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "" +msgstr "Zmień nadrzędny" #: tools/editor/resources_dock.cpp msgid "Create New Resource" @@ -6365,14 +6464,6 @@ msgid "Scene Run Settings" msgstr "Ustawienia uruchomienia sceny" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "OK :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6381,10 +6472,6 @@ msgid "Error loading scene from %s" msgstr "Błąd przy ładowaniu sceny z %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Ok" @@ -6400,15 +6487,16 @@ msgstr "" #: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." -msgstr "" +msgstr "Nie można wykonać tej operacji na głównym węźle drzewa." #: tools/editor/scene_tree_dock.cpp msgid "Move Node In Parent" msgstr "" #: tools/editor/scene_tree_dock.cpp +#, fuzzy msgid "Move Nodes In Parent" -msgstr "" +msgstr "Przenieść węzły do węzła nadrzędnego." #: tools/editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" @@ -6423,12 +6511,8 @@ msgid "This operation can't be done without a scene." msgstr "Ta operacja nie może zostać wykonana bez sceny." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." -msgstr "" +msgstr "Tej operacji nie można wykonać na dziedziczącej scenie." #: tools/editor/scene_tree_dock.cpp msgid "Save New Scene As.." @@ -6451,22 +6535,21 @@ msgid "Remove Node(s)" msgstr "Usuń węzeł(y)" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Utwórz węzeł" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." msgstr "" +"Nie udało się zapisać sceny. Najprawdopodobniej pewne zależności nie są " +"spełnione." #: tools/editor/scene_tree_dock.cpp msgid "Error saving scene." msgstr "Błąd podczas zapisywania sceny." #: tools/editor/scene_tree_dock.cpp +#, fuzzy msgid "Error duplicating scene to save it." -msgstr "" +msgstr "Błąd duplikowania sceny przy zapisywaniu." #: tools/editor/scene_tree_dock.cpp msgid "Edit Groups" @@ -6493,10 +6576,16 @@ msgid "Change Type" msgstr "Zmień typ" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +#, fuzzy +msgid "Attach Script" msgstr "Dodaj skrypt" #: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Utwórz Skrypt" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "Dołącz ze sceny" @@ -6519,24 +6608,22 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +#, fuzzy +msgid "Attach a new or existing script for the selected node." msgstr "Utwórz nowy skrypt dla zaznaczonego węzła." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Ten obiekt nie może być widoczny ponieważ jego rodzic jest ukryty. Odkryj " -"najpierw rodzica." +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear a script for the selected node." +msgstr "Utwórz nowy skrypt dla zaznaczonego węzła." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" -msgstr "" +msgstr "Przełącz widoczność Spatial" #: tools/editor/scene_tree_editor.cpp msgid "Toggle CanvasItem Visible" -msgstr "" +msgstr "Przełącz widoczność CanvasItem" #: tools/editor/scene_tree_editor.cpp msgid "Instance:" @@ -6556,15 +6643,16 @@ msgstr "Drzewo sceny (węzły):" #: tools/editor/scene_tree_editor.cpp msgid "Editable Children" -msgstr "" +msgstr "Edytowalne dzieci" #: tools/editor/scene_tree_editor.cpp msgid "Load As Placeholder" -msgstr "" +msgstr "Załaduj jako zastępczy" #: tools/editor/scene_tree_editor.cpp +#, fuzzy msgid "Discard Instancing" -msgstr "" +msgstr "Odrzuć instancjonowanie" #: tools/editor/scene_tree_editor.cpp msgid "Open in Editor" @@ -6623,6 +6711,11 @@ msgid "Could not create script in filesystem." msgstr "Nie można było utworzyć skryptu w systemie plików." #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Błąd przy ładowaniu sceny z %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "Ścieżka jest pusta" @@ -6635,16 +6728,18 @@ msgid "Invalid base path" msgstr "Niepoprawna ścieżka bazowa" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "Plik Istnieje" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Niepoprawne rozszerzenie" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Poprawna ścieżka" +#, fuzzy +msgid "Create new script" +msgstr "Utwórz Skrypt" + +#: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Load existing script" +msgstr "Następny skrypt" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6655,7 +6750,8 @@ msgid "Built-In Script" msgstr "Wbudowany skrypt" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +#, fuzzy +msgid "Attach Node Script" msgstr "Utwórz skrypt dla węzła" #: tools/editor/script_editor_debugger.cpp @@ -6822,6 +6918,37 @@ msgstr "Zmień długość Ray Shape" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Zmień rozmiar Box Shape" + +#~ msgid "Vertex" +#~ msgstr "Wierzchołek" + +#~ msgid "Global" +#~ msgstr "Globalne" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Ten obiekt nie może być widoczny ponieważ jego rodzic jest ukryty. Odkryj " +#~ "najpierw rodzica." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "Ścieżki nie mogą zaczynać się od '/', ścieżki absolutne muszą zaczynać " +#~ "się od 'res://', 'user://', lub 'local://'" + +#~ msgid "File exists" +#~ msgstr "Plik Istnieje" + +#~ msgid "Valid path" +#~ msgstr "Poprawna ścieżka" + #~ msgid "Cannot go into subdir:" #~ msgstr "Nie można iść do podkatalogu:" diff --git a/tools/translations/ro.po b/tools/translations/pr.po index e4782fec64..f8a9505066 100644 --- a/tools/translations/ro.po +++ b/tools/translations/pr.po @@ -1,173 +1,191 @@ -# Romanian translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Pirate translation of the Godot Engine editor +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# Zion Nimchuk <zionnimchuk@gmail.com>, 2016. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"Language: ro\n" +"PO-Revision-Date: 2016-11-14 19:48+0000\n" +"Last-Translator: Zion Nimchuk <zionnimchuk@gmail.com>\n" +"Language-Team: Pirate <https://hosted.weblate.org/projects/godot-engine/" +"godot/pr/>\n" +"Language: pr\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 2.10-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" +"Shiver me timbers! ye type argument t' convert() be wrong! use yer TYPE_* " +"constants!" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "" +msgstr "Nah enough bytes fer decodin' bytes, or ye got th' wrong ship." #: modules/gdscript/gd_functions.cpp msgid "step argument is zero!" -msgstr "" - -#: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" +msgstr "Blimey! Ye step argument be marooned!" #: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" -msgstr "" +msgstr "Arr! Yer script is marooned!" #: modules/gdscript/gd_functions.cpp msgid "Not based on a script" -msgstr "" +msgstr "Ye be loaded to the gunwalls? It's anchorage be not on a script!" #: modules/gdscript/gd_functions.cpp msgid "Not based on a resource file" -msgstr "" +msgstr "Yer anchorage not be on a resource file, ye bilge rat!" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary format (missing @path)" -msgstr "" +msgstr "Ye got th' wrong dictionary getup! (ye be missin' yer @path!)" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" -msgstr "" +msgstr "Ye got th' wrong dictionary getup! (yer script aint' at ye @path)" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" +"Ye got th' wrong dictionary getup! (ye be drinkin'? Ye got yerself a bad " +"script at @path!)" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" +"Ye got th' wrong dictionary getup! (yer subclasses be walkin' the plank!)" #: modules/visual_script/visual_script.cpp msgid "" "A node yielded without working memory, please read the docs on how to yield " "properly!" msgstr "" +"Yer scurvy node yielded but she got n' workin' memry'! Ye should keep a " +"lookout for em' docs, she knows how t' yield like yer captain!" #: modules/visual_script/visual_script.cpp msgid "" "Node yielded, but did not return a function state in the first working " "memory." msgstr "" +"Yer scurvy node yielded but er' booty didn't have no function state in er' " +"maiden workin' memry'!" #: modules/visual_script/visual_script.cpp msgid "" "Return value must be assigned to first element of node working memory! Fix " "your node please." msgstr "" +"Yer value best be comin' back posted to ye first element of yer node's " +"workin' memry'! Swab the decks!" #: modules/visual_script/visual_script.cpp msgid "Node returned an invalid sequence output: " -msgstr "" +msgstr "Blow the man down! Yer node's booty got ye n' a evil sequence output: " #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" msgstr "" +"Arrr! I found yer sequence bit but there be no node in yer stack. Tell th' " +"Captain!" #: modules/visual_script/visual_script.cpp msgid "Stack overflow with stack depth: " -msgstr "" +msgstr "Avast! Yer stack has burst! Her depth be: " #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "" +msgstr "Yer functions:" #: modules/visual_script/visual_script_editor.cpp msgid "Variables:" -msgstr "" +msgstr "Yer variables:" #: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp msgid "Signals:" -msgstr "" +msgstr "Yer signals:" #: modules/visual_script/visual_script_editor.cpp msgid "Name is not a valid identifier:" -msgstr "" +msgstr "Yer name's got no valid identifier: " #: modules/visual_script/visual_script_editor.cpp msgid "Name already in use by another func/var/signal:" msgstr "" +"Yer name be backstabin'! She be used by another dastardly func/var/signal:" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Function" -msgstr "" +msgstr "Rename Function" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Variable" -msgstr "" +msgstr "Rename Variable" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Signal" -msgstr "" +msgstr "Rename Signal" #: modules/visual_script/visual_script_editor.cpp msgid "Add Function" -msgstr "" +msgstr "Add Function" #: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" -msgstr "" +msgstr "Add Variable" #: modules/visual_script/visual_script_editor.cpp msgid "Add Signal" -msgstr "" +msgstr "Add Signal" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" -msgstr "" +msgstr "Discharge ye' Function" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Variable" -msgstr "" +msgstr "Discharge ye' Variable" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Variable:" -msgstr "" +msgstr "Ye be fixin' Variable:" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Signal" -msgstr "" +msgstr "Discharge ye' Signal" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Signal:" -msgstr "" +msgstr "Ye be fixin' Signal:" #: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" -msgstr "" +msgstr "Swap yer Expression" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" -msgstr "" +msgstr "Add Node" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"Smash yer Meta t' sink yer Getter. Smash yer Shift t' sink a generic " +"signature." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"Smash yer Ctrl t' sink yer Getter. Smash yer Shift t' sink a generic " +"signature." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a simple reference to the node." @@ -375,74 +393,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -550,10 +568,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -613,7 +627,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1756,6 +1771,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1823,7 +1842,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2048,7 +2069,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2728,6 +2751,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2955,6 +2979,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3854,6 +3882,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4718,18 +4789,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5492,6 +5551,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5951,10 +6068,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6098,7 +6211,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6131,10 +6244,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6211,14 +6320,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6227,10 +6328,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6269,10 +6366,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6297,10 +6390,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6339,7 +6428,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6365,13 +6458,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6467,6 +6558,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6479,15 +6574,15 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Create new script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6499,7 +6594,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6665,3 +6760,14 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "Avast! Ye cannot steer yer ship with a '/'! Yer need t' start wit' " +#~ "'res://', 'user://', or 'local://' ye knave!" diff --git a/tools/translations/pt_BR.po b/tools/translations/pt_BR.po index de8b9920a5..106142b4ea 100644 --- a/tools/translations/pt_BR.po +++ b/tools/translations/pt_BR.po @@ -1,5 +1,5 @@ # Portuguese (Brazil) translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # António Sarmento <antonio.luis.sarmento@gmail.com>, 2016. @@ -37,12 +37,6 @@ msgid "step argument is zero!" msgstr "o argumento step é zero!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Não é um script com uma instância" @@ -402,79 +396,79 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Error creating the signature object." msgstr "Erro ao escrever o PCK do projeto!" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Nome Inválido." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "Tamanho de fonte inválido." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid publisher GUID." msgstr "Caminho base inválido" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid background color." msgstr "Origem personalizada da fonte inválida." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -616,10 +610,6 @@ msgstr "" "VisibilityEnable2D funciona melhor quando usado como filho direto da raiz da " "cena atualmente editada." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance não contém um recurso BakedLight ." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -698,7 +688,8 @@ msgstr "" msgid "Cancel" msgstr "Cancelar" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -1858,6 +1849,11 @@ msgid "Constants:" msgstr "Constantes:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Descrição breve:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Descrição do Método:" @@ -1925,7 +1921,9 @@ msgstr "Erro ao salvar Recurso!" msgid "Save Resource As.." msgstr "Salvar Recuso como..." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Entendo..." @@ -2163,7 +2161,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Escolha uma Cena Principal" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Ugh" @@ -2867,6 +2867,7 @@ msgstr "Textura(s) de Origem:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Caminho Destino:" @@ -3100,6 +3101,11 @@ msgid "Auto" msgstr "Auto" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +#, fuzzy +msgid "Root Node Name:" +msgstr "Nome do Nó:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Os Seguintes Arquivos estão Faltando:" @@ -4012,6 +4018,51 @@ msgstr "Defina um Valor" msgid "Snap (Pixels):" msgstr "Snap (Pixels):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Add %s" +msgstr "Adicionar Todos" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Criar Nó" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Erro ao instanciar cena de %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "OK :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "Sem nó pai onde instanciar um filho." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Essa operação requer um único nó selecionado." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Change default type" +msgstr "Alterar Valor Padrão" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4883,18 +4934,6 @@ msgstr "Ir para linha..." msgid "Contextual Help" msgstr "Ajuda Contextual" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Vértice" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "Fragmento" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "Iluminação" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Alterar Constante Escalar" @@ -5659,6 +5698,71 @@ msgid "No exporter for platform '%s' yet." msgstr "Ainda não há exportador para a plataforma \"%s\"." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Criar Novo Recurso" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Nome Válido" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Transição" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Status:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Senha:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Caracteres válidos:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Novo nome:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Incluir" @@ -6125,10 +6229,6 @@ msgid "Erase Input Action Event" msgstr "Apagar Evento Ação de Entrada" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "Alternar Persistência" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Erro ao salvar as configurações." @@ -6272,7 +6372,7 @@ msgstr "Arquivo..." msgid "Dir.." msgstr "Dir..." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Carregar" @@ -6306,10 +6406,6 @@ msgid "Properties:" msgstr "Propriedades:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Global" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "Seções:" @@ -6388,14 +6484,6 @@ msgid "Scene Run Settings" msgstr "Configurações de Carregamento da Cena" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "OK :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "Sem nó pai onde instanciar um filho." - -#: tools/editor/scene_tree_dock.cpp #, fuzzy msgid "No parent to instance the scenes at." msgstr "Sem nó pai onde instanciar um filho." @@ -6405,10 +6493,6 @@ msgid "Error loading scene from %s" msgstr "Erro ao carregar cena de %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Erro ao instanciar cena de %s" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Ok" @@ -6449,10 +6533,6 @@ msgid "This operation can't be done without a scene." msgstr "Essa operação não pode ser realizada sem uma cena." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "Essa operação requer um único nó selecionado." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Essa operação não pode ser realizada em cenas instanciadas." @@ -6477,10 +6557,6 @@ msgid "Remove Node(s)" msgstr "Remover Nó(s)" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Criar Nó" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6521,10 +6597,16 @@ msgid "Change Type" msgstr "Alterar Tipo" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +#, fuzzy +msgid "Attach Script" msgstr "Adicionar Script" #: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Criar Script" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "Fundir a Partir de Cena" @@ -6549,16 +6631,14 @@ msgstr "" "existe um nó raiz." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +#, fuzzy +msgid "Attach a new or existing script for the selected node." msgstr "Criar um script novo para o nó selecionado." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Este item não pode se tornar visível porque o pai está escondido. Reexiba o " -"pai primeiro." +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear a script for the selected node." +msgstr "Criar um script novo para o nó selecionado." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6653,6 +6733,11 @@ msgid "Could not create script in filesystem." msgstr "Não foi possível criar o script no sistema de arquivos." #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "Erro ao carregar cena de %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "O caminho está vazio" @@ -6665,16 +6750,18 @@ msgid "Invalid base path" msgstr "Caminho base inválido" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "O arquivo existe" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Extensão inválida" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Caminho válido" +#, fuzzy +msgid "Create new script" +msgstr "Criar Script" + +#: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Load existing script" +msgstr "Próximo Script" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6685,7 +6772,8 @@ msgid "Built-In Script" msgstr "Script Embutido" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +#, fuzzy +msgid "Attach Node Script" msgstr "Criar Script para Nó" #: tools/editor/script_editor_debugger.cpp @@ -6852,6 +6940,42 @@ msgstr "Mudar o tamanho do Shape Ray" msgid "Change Notifier Extents" msgstr "Alterar a Extensão do Notificador" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Alterar a Extensão do Notificador" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance não contém um recurso BakedLight ." + +#~ msgid "Vertex" +#~ msgstr "Vértice" + +#~ msgid "Fragment" +#~ msgstr "Fragmento" + +#~ msgid "Lighting" +#~ msgstr "Iluminação" + +#~ msgid "Toggle Persisting" +#~ msgstr "Alternar Persistência" + +#~ msgid "Global" +#~ msgstr "Global" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Este item não pode se tornar visível porque o pai está escondido. Reexiba " +#~ "o pai primeiro." + +#~ msgid "File exists" +#~ msgstr "O arquivo existe" + +#~ msgid "Valid path" +#~ msgstr "Caminho válido" + #~ msgid "Cannot go into subdir:" #~ msgstr "Não é possível ir ao subdiretório:" diff --git a/tools/translations/pt_PT.po b/tools/translations/pt_PT.po index 21727ce186..7b3c814f8c 100644 --- a/tools/translations/pt_PT.po +++ b/tools/translations/pt_PT.po @@ -1,5 +1,5 @@ # Portuguese (Portugal) translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # António Sarmento <antonio.luis.sarmento@gmail.com>, 2016. @@ -33,12 +33,6 @@ msgid "step argument is zero!" msgstr "o argumento \"step\" é zero!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Não é um script com uma instância" @@ -393,75 +387,75 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Nome de índice propriedade inválido." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -569,10 +563,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -632,7 +622,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1775,6 +1766,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1842,7 +1837,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2067,7 +2064,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2747,6 +2746,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2974,6 +2974,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3873,6 +3877,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4738,18 +4785,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5512,6 +5547,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5971,10 +6064,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6118,7 +6207,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6151,10 +6240,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6232,14 +6317,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6248,10 +6325,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6290,10 +6363,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6318,10 +6387,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6360,7 +6425,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6386,13 +6455,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6488,6 +6555,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6500,15 +6571,15 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Create new script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6520,7 +6591,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6686,3 +6757,7 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" diff --git a/tools/translations/ru.po b/tools/translations/ru.po index b8288d07a4..73262dbd5e 100644 --- a/tools/translations/ru.po +++ b/tools/translations/ru.po @@ -1,5 +1,5 @@ # Russian translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # DimOkGamer <dimokgamer@gmail.com>, 2016. @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-09-14 21:55+0000\n" +"PO-Revision-Date: 2016-12-14 17:04+0000\n" "Last-Translator: DimOkGamer <dimokgamer@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 2.8\n" +"X-Generator: Weblate 2.10-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -37,12 +37,6 @@ msgid "step argument is zero!" msgstr "Аргумент шага равен нулю!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "Скрипт без экземпляра" @@ -172,9 +166,8 @@ msgid "Editing Signal:" msgstr "Редактирование сигнала:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "Изменить тип" +msgstr "Изменить выражение" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -225,40 +218,36 @@ msgid "Add Setter Property" msgstr "Добавить устанавливающее свойство" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "Копировать анимацию" +msgstr "Условие" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "Последовательность" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Switch" -msgstr "Высота" +msgstr "Переключатель" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Итератор" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "Пока" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Return" -msgstr "Возвращение:" +msgstr "Возвращение" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" msgstr "Вызов" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Get" -msgstr "Задан" +msgstr "Получить" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp @@ -399,87 +388,84 @@ msgstr "" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "просто нажата" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "просто отпущена" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" -msgstr "" +msgstr "Не могу прочитать файл сертификата. Уверены, что путь и пароль верны?" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "Ошибка записи PCK файла!" +msgstr "Ошибка при создании объекта подписи." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "Ошибка при создании подписи пакета." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"Шаблоны экспорта не найдены.\n" +"Скачайте и установите шаблоны экспорта." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "Пользовательский отладочный пакет не найден." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "Пользовательский релизный пакет не найден." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "Недопустимое имя." +msgstr "Неверное уникальное имя." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "Недопустимый размер шрифта." +msgstr "Неверный GUID продукта." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "Недопустимый базовый путь" +msgstr "Неверный GUID издателя." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "Недопустимый шрифт пользовательского источника." +msgstr "Недопустимый цвет фона." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "Неверные размеры логотипа для магазина (должны быть 50х50)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "" +msgstr "Неверные размеры квадратного логотипа 44x44 (должны быть 44x44)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "" +msgstr "Неверные размеры квадратного логотипа 71x71 (должны быть 71x71)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "" +msgstr "Неверные размеры квадратного логотипа 150x150 (должны быть 150x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "" +msgstr "Неверные размеры квадратного логотипа 310x310 (должны быть 310x310)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "" +msgstr "Неверные размеры широкого логотипа 310x150 (должны быть 310x150)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." -msgstr "" +msgstr "Неверные размеры заставки (должны быть 620x300)." #: scene/2d/animated_sprite.cpp msgid "" @@ -623,10 +609,6 @@ msgstr "" "VisibilityEnable2D работает наилучшим образом при использовании корня " "редактируемой сцены, как прямого родителя." -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance не содержит BakedLight ресурс." - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -673,11 +655,8 @@ msgstr "" "Navigation. Он предоставляет только навигационные данные." #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." -msgstr "" -"Для корректной работы свойство Path должно указывать на действующий узел " -"Particles2D." +msgstr "Свойство Path должно указывать на действительный Spatial узел." #: scene/3d/scenario_fx.cpp msgid "" @@ -706,7 +685,8 @@ msgstr "" msgid "Cancel" msgstr "Отмена" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "Ок" @@ -1028,7 +1008,7 @@ msgstr "Дублировать перемещённый" #: tools/editor/animation_editor.cpp msgid "Remove Selection" -msgstr "Убрать выделение" +msgstr "Удалить выделенное" #: tools/editor/animation_editor.cpp msgid "Continuous" @@ -1452,6 +1432,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"Целевой метод не найден! Укажите правильный метод или прикрепите скрипт на " +"целевой узел." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" @@ -1869,6 +1851,11 @@ msgid "Constants:" msgstr "Константы:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Краткое описание:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "Описание методов:" @@ -1936,7 +1923,9 @@ msgstr "Ошибка при сохранении ресурса!" msgid "Save Resource As.." msgstr "Сохранить ресурс как.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Ясно.." @@ -2174,7 +2163,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "Выберите главную сцену" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "Ясно" @@ -2495,9 +2486,8 @@ msgid "Editor Layout" msgstr "Макет редактора" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" -msgstr "Полноэкранный режим" +msgstr "Переключить полноэкранный режим" #: tools/editor/editor_node.cpp msgid "Install Export Templates" @@ -2525,7 +2515,7 @@ msgstr "Обновлять при изменениях" #: tools/editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "Отключить счётчик обновлений" #: tools/editor/editor_node.cpp msgid "Inspector" @@ -2879,6 +2869,7 @@ msgstr "Исходные текстура(ы):" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "Целевой путь:" @@ -3112,6 +3103,10 @@ msgid "Auto" msgstr "Авто" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "Имя корневого узла:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "Отсутствуют следующие файлы:" @@ -3460,7 +3455,7 @@ msgstr "Добавить анимацию" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" -msgstr "изменена последующая анимация" +msgstr "Изменена последующая анимация" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Change Blend Time" @@ -3958,9 +3953,8 @@ msgid "Clear Bones" msgstr "Очистить кости" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Bones" -msgstr "Создать кости" +msgstr "Показать кости" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -4023,6 +4017,51 @@ msgstr "Установить значение" msgid "Snap (Pixels):" msgstr "Привязка (пиксели):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "Добавить %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "Добавление %s..." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Создать узел" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Ошибка добавления сцены из %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "Ок :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "Не выбран родитель для добавления потомка." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Эта операция требует одного выбранного узла." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "Изменить тип по умолчанию" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" +"Drag & drop + Shift : Добавить узел к выделению\n" +"Drag & drop + Alt : Изменить тип узла" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4701,9 +4740,8 @@ msgid "Close Docs" msgstr "Закрыть документацию" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "Закрыть" +msgstr "Закрыть всё" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp @@ -4818,9 +4856,8 @@ msgstr "" "принадлежат, загружена" #: tools/editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" -msgstr "Цвет" +msgstr "Выбрать цвет" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" @@ -4893,18 +4930,6 @@ msgstr "Перейти к строке.." msgid "Contextual Help" msgstr "Контекстная справка" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "Вертекс" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "Фрагмент" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "Освещение" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "Изменена числовая константа" @@ -5198,9 +5223,8 @@ msgid "Insert Animation Key" msgstr "Вставить ключ анимации" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Origin" -msgstr "Отображать начало координат" +msgstr "Фокус на центре" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Selection" @@ -5468,9 +5492,8 @@ msgid "Remove Item" msgstr "Удалить элемент" #: tools/editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "Сохранить тему" +msgstr "Тема" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5669,6 +5692,71 @@ msgid "No exporter for platform '%s' yet." msgstr "Платформа '%s' пока не поддерживается." #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Создать новый ресурс" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Допустимое имя" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "Переход" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "Статус:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "Пароль:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Допустимые символы:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Новое имя:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "Включить" @@ -6132,10 +6220,6 @@ msgid "Erase Input Action Event" msgstr "Удалить действие" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "Переключено настаивание" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "Ошибка сохранения настроек." @@ -6279,7 +6363,7 @@ msgstr "Файл.." msgid "Dir.." msgstr "Папка.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "Загрузить" @@ -6288,9 +6372,8 @@ msgid "Assign" msgstr "Назначить" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "Следующий скрипт" +msgstr "Новый скрипт" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6313,10 +6396,6 @@ msgid "Properties:" msgstr "Свойства:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "Глобальные" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "Разделы:" @@ -6395,14 +6474,6 @@ msgid "Scene Run Settings" msgstr "Параметры запуска сцены" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "Ок :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "Нет родителя для добавления потомка." - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "Нет родителя для добавления сюда сцены." @@ -6411,10 +6482,6 @@ msgid "Error loading scene from %s" msgstr "Ошибка при загрузке сцены из %s" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "Ошибка добавления сцены из %s" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Ок" @@ -6455,10 +6522,6 @@ msgid "This operation can't be done without a scene." msgstr "Эта операция не может быть выполнена без сцены." #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "Эта операция требует одного выбранного узла." - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "Эта операция не может быть сделана на редактируемой сцене." @@ -6483,10 +6546,6 @@ msgid "Remove Node(s)" msgstr "Удалить узел(узлы)" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "Создать узел" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6527,8 +6586,12 @@ msgid "Change Type" msgstr "Изменить тип" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "Добавить скрипт" +msgid "Attach Script" +msgstr "Прикрепить скрипт" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "Убрать скрипт" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6555,16 +6618,12 @@ msgstr "" "не существует." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." -msgstr "Создать новый скрипт для выбранного узла." +msgid "Attach a new or existing script for the selected node." +msgstr "Прикрепить новый или существующий скрипт к выбранному узлу." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" -"Этот объект не может быть отображён, потому что его родитель скрыт. " -"Отобразите сначала родительский узел." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "Убрать скрипт у выбранного узла." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6659,8 +6718,12 @@ msgid "Could not create script in filesystem." msgstr "Не удалось создать скрипт в файловой системе." #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "Ошибка при загрузке скрипта из %s" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" -msgstr "Путь не назначен" +msgstr "Не указан путь" #: tools/editor/script_create_dialog.cpp msgid "Path is not local" @@ -6671,16 +6734,16 @@ msgid "Invalid base path" msgstr "Недопустимый базовый путь" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "Файл существует" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Недопустимое расширение" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Допустимый путь" +msgid "Create new script" +msgstr "Создать новый скрипт" + +#: tools/editor/script_create_dialog.cpp +msgid "Load existing script" +msgstr "Загрузить существующий скрипт" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6691,8 +6754,8 @@ msgid "Built-In Script" msgstr "Встроенный Скрипт" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "Создать скрипт для узла" +msgid "Attach Node Script" +msgstr "Добавление скрипта" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6858,6 +6921,49 @@ msgstr "Изменена длинна луча" msgid "Change Notifier Extents" msgstr "Изменены границы уведомителя" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Изменены границы уведомителя" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance не содержит BakedLight ресурс." + +#~ msgid "Vertex" +#~ msgstr "Вертекс" + +#~ msgid "Fragment" +#~ msgstr "Фрагмент" + +#~ msgid "Lighting" +#~ msgstr "Освещение" + +#~ msgid "Toggle Persisting" +#~ msgstr "Параметр изменён" + +#~ msgid "Global" +#~ msgstr "Глобальные" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Этот объект не может быть отображён, потому что его родитель скрыт. " +#~ "Отобразите сначала родительский узел." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "Путь не может начинаться с '/', абсолютные пути должны начинаться с " +#~ "'res://', 'user://' или 'local://'" + +#~ msgid "File exists" +#~ msgstr "Файл существует" + +#~ msgid "Valid path" +#~ msgstr "Допустимый путь" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/sk.po b/tools/translations/sk.po index 0e21e5a94f..f1bd9f1300 100644 --- a/tools/translations/sk.po +++ b/tools/translations/sk.po @@ -1,5 +1,5 @@ # Slovak translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # J08nY <johnenter@gmail.com>, 2016. @@ -32,12 +32,6 @@ msgid "step argument is zero!" msgstr "argument \"step\"/krok je nulový!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "" @@ -387,74 +381,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -569,10 +563,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -632,7 +622,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1776,6 +1767,11 @@ msgid "Constants:" msgstr "Konštanty:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Popis:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1843,7 +1839,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2068,7 +2066,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2749,6 +2749,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2976,6 +2977,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3875,6 +3880,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4740,18 +4788,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5517,6 +5553,65 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Vytvoriť adresár" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5976,10 +6071,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6123,7 +6214,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6157,10 +6248,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6237,14 +6324,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6253,10 +6332,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6295,10 +6370,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6323,10 +6394,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6365,8 +6432,14 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +#, fuzzy +msgid "Attach Script" +msgstr "Popis:" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "Popis:" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6391,13 +6464,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6493,6 +6564,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6505,16 +6580,18 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "Popis:" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "" +#, fuzzy +msgid "Load existing script" +msgstr "Popis:" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6525,8 +6602,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "Popis:" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6691,3 +6769,7 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" diff --git a/tools/translations/sl.po b/tools/translations/sl.po index 41ebecad54..12903cba83 100644 --- a/tools/translations/sl.po +++ b/tools/translations/sl.po @@ -1,5 +1,5 @@ # Slovenian translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # matevž lapajne <sivar.lapajne@gmail.com>, 2016. @@ -33,12 +33,6 @@ msgid "step argument is zero!" msgstr "stopnja argumenta je nič!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "To ni skripta z instanco" @@ -393,75 +387,75 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "Neveljaven indeks lastnosti imena." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -581,10 +575,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -644,7 +634,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1787,6 +1778,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1854,7 +1849,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2079,7 +2076,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2759,6 +2758,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2986,6 +2986,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3885,6 +3889,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4750,18 +4797,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5524,6 +5559,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5983,10 +6076,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6130,7 +6219,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6163,10 +6252,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6244,14 +6329,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6260,10 +6337,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6302,10 +6375,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6330,10 +6399,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6372,7 +6437,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6398,13 +6467,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6500,6 +6567,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6512,15 +6583,15 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Create new script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6532,7 +6603,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6699,6 +6770,10 @@ msgstr "" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + #~ msgid "" #~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but " #~ "unsequenced ports were specified." diff --git a/tools/translations/tools.pot b/tools/translations/tools.pot index 5453c5d9e2..447067beb3 100644 --- a/tools/translations/tools.pot +++ b/tools/translations/tools.pot @@ -1,5 +1,5 @@ # LANGUAGE translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. @@ -26,12 +26,6 @@ msgid "step argument is zero!" msgstr "" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "" @@ -375,74 +369,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -550,10 +544,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -613,7 +603,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1756,6 +1747,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1823,7 +1818,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2048,7 +2045,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2728,6 +2727,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2955,6 +2955,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3854,6 +3858,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4718,18 +4765,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5492,6 +5527,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5951,10 +6044,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6098,7 +6187,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6131,10 +6220,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6211,14 +6296,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6227,10 +6304,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6269,10 +6342,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6297,10 +6366,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6339,7 +6404,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6365,13 +6434,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6467,6 +6534,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6479,15 +6550,15 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Create new script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6499,7 +6570,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6665,3 +6736,7 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" diff --git a/tools/translations/tr.po b/tools/translations/tr.po index 823082ef17..b930e302f2 100644 --- a/tools/translations/tr.po +++ b/tools/translations/tr.po @@ -1,104 +1,108 @@ # Turkish translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # +# Aprın Çor Tigin <kabusturk38@gmail.com>, 2016. +# Ceyhun Can Ulker <ceyhuncanu@gmail.com>, 2016. # Enes Kaya Öcal <ekayaocal@hotmail.com>, 2016. # M. Yavuz Uzun <myavuzuzun@yandex.com>, 2016. +# Orkun Turan <holygatestudio@yandex.com>, 2016-2017. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-08-18 00:13+0000\n" -"Last-Translator: M. Yavuz Uzun <myavuzuzun@yandex.com>\n" +"PO-Revision-Date: 2017-01-02 19:10+0000\n" +"Last-Translator: Orkun Turan <holygatestudio@yandex.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 2.8-dev\n" +"X-Generator: Weblate 2.11-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" +"convert() için geçersiz türde değiştirgen, TYPE_* sabitlerini kullanın." #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "" +msgstr "Geçersiz biçem ya da kod çözmek için yetersiz byte sayısı." #: modules/gdscript/gd_functions.cpp msgid "step argument is zero!" -msgstr "" - -#: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" +msgstr "adım değiştirgeni sıfır!" #: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" -msgstr "" +msgstr "Örneği bulunan bir betik değil" #: modules/gdscript/gd_functions.cpp msgid "Not based on a script" -msgstr "Bir koda bağlı değil" +msgstr "Bir betiğe bağlı değil" #: modules/gdscript/gd_functions.cpp msgid "Not based on a resource file" -msgstr "Bir kaynak dosyasına bağlı değil" +msgstr "Bir kaynak dizecine bağlı değil" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary format (missing @path)" -msgstr "" +msgstr "Geçersiz örnek sözlük biçemi (@path eksik)" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" -msgstr "" +msgstr "Geçersiz örnek sözlük biçemi (betik @path 'tan yüklenemiyor)" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" -msgstr "" +msgstr "Geçersiz örnek sözlük biçemi (@path 'taki kod geçersiz)" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" -msgstr "" +msgstr "Geçersiz örnek sözlüğü (geçersiz altbölütler)" #: modules/visual_script/visual_script.cpp msgid "" "A node yielded without working memory, please read the docs on how to yield " "properly!" -msgstr "Çalışan hafıza olmadan düğüm yerleştirilmiş, lütfen belgeleri okuyun!" +msgstr "" +"Çalışan hafıza olmadan düğüm yerleştirilmiş, lütfen doğru yerleştirme " +"üzerine olan belgeleri okuyun!" #: modules/visual_script/visual_script.cpp msgid "" "Node yielded, but did not return a function state in the first working " "memory." msgstr "" +"Düğüm yerleştirilmiş, fakat çalışan ilk hafızada bir işlev koşulunu " +"döndüremedi." #: modules/visual_script/visual_script.cpp msgid "" "Return value must be assigned to first element of node working memory! Fix " "your node please." msgstr "" +"Döndürülen değer, düğüm çalışan hafızasındaki ilk elemana atanmış olmalıdır! " +"Lütfen düğümünüzü düzeltin." #: modules/visual_script/visual_script.cpp msgid "Node returned an invalid sequence output: " -msgstr "" +msgstr "Düğüm geçersiz bir dizi çıktısı döndürdü: " #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" -msgstr "" +msgstr "Bit dizisi bulundu fakat yığındaki düğüm değil, kusuru bildir!" #: modules/visual_script/visual_script.cpp msgid "Stack overflow with stack depth: " -msgstr "" +msgstr "Şu derinlikte yığın taşması: " #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "Fonksiyonlar:" +msgstr "İşlevler:" #: modules/visual_script/visual_script_editor.cpp msgid "Variables:" @@ -106,31 +110,31 @@ msgstr "Değişkenler:" #: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp msgid "Signals:" -msgstr "Sinyaller:" +msgstr "İşaretler:" #: modules/visual_script/visual_script_editor.cpp msgid "Name is not a valid identifier:" -msgstr "İsim doğru bir belirleyici değil:" +msgstr "Ad doğru bir belirleyici değil:" #: modules/visual_script/visual_script_editor.cpp msgid "Name already in use by another func/var/signal:" -msgstr "Ad zaten başka bir fonksiyon/değişken/sinyal tarafından kullanılıyor:" +msgstr "Ad zaten başka bir işlev/değişken/işaret tarafından kullanılıyor:" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Function" -msgstr "Fonksiyonu Yeniden İsimlendir" +msgstr "İşlevi Yeniden Adlandır" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Variable" -msgstr "Değişkeni Yeniden İsimlendir" +msgstr "Değişkeni Yeniden Adlandır" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Signal" -msgstr "Sinyali Yeniden İsimlendir" +msgstr "İşareti Yeniden Adlandır" #: modules/visual_script/visual_script_editor.cpp msgid "Add Function" -msgstr "Fonksiyon Ekle" +msgstr "İşlev Ekle" #: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" @@ -138,11 +142,11 @@ msgstr "Değişken Ekle" #: modules/visual_script/visual_script_editor.cpp msgid "Add Signal" -msgstr "Sinyal Ekle" +msgstr "İşaret Ekle" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" -msgstr "Fonksiyonu Kaldır" +msgstr "İşlevi Kaldır" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Variable" @@ -154,15 +158,15 @@ msgstr "Değişken Düzenleniyor:" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Signal" -msgstr "Sinyali Kaldır" +msgstr "İşareti Kaldır" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Signal:" -msgstr "Sinyal Düzenleniyor:" +msgstr "İşaret Düzenleniyor:" #: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" -msgstr "" +msgstr "İfadeyi Değiştir" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" @@ -171,31 +175,34 @@ msgstr "Düğüm Ekle" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"Alıcı işlevini bırakmak için Alt'a basılı tutun. Genelgeçer imzayı bırakmak " +"için Shift'e basılı tutun." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"Alıcı işlevini bırakmak için Ctrl'e basılı tutun. Genelgeçer imzayı bırakmak " +"için Shift'e basılı tutun." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a simple reference to the node." -msgstr "" +msgstr "Bir düğüme basit bir başvuru bırakmak için Alt'a basılı tutun." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." -msgstr "" +msgstr "Bir düğüme basit bir başvuru bırakmak için Ctrl'e basılı tutun." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Variable Setter." -msgstr "" +msgstr "Bir Değişken Atayıcı bırakmak için Alt'a basılı tutun." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." -msgstr "" +msgstr "Bir Değişken Atayıcı bırakmak için Ctrl'e basılı tutun." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Preload Node" -msgstr "Düğüm Ekle" +msgstr "Önyüklenen Düğüm Ekle" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" @@ -210,42 +217,41 @@ msgid "Add Setter Property" msgstr "Düzenleyici Özellik Ekle" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "Animasyon Yükle" +msgstr "Koşul" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "Dizi" #: modules/visual_script/visual_script_editor.cpp msgid "Switch" -msgstr "" +msgstr "Değiştir" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "Yineleyici" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "İken" #: modules/visual_script/visual_script_editor.cpp msgid "Return" -msgstr "" +msgstr "Döndür" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" -msgstr "" +msgstr "Çağır" #: modules/visual_script/visual_script_editor.cpp msgid "Get" -msgstr "" +msgstr "Al" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp msgid "Set" -msgstr "" +msgstr "Ata" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp @@ -258,7 +264,7 @@ msgstr "Düzenle" #: modules/visual_script/visual_script_editor.cpp msgid "Base Type:" -msgstr "Taban Tipi:" +msgstr "Taban Türü:" #: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp msgid "Members:" @@ -266,11 +272,11 @@ msgstr "Üyeler:" #: modules/visual_script/visual_script_editor.cpp msgid "Available Nodes:" -msgstr "" +msgstr "Kullanışlı Düğümler:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit graph" -msgstr "" +msgstr "Çizgeyi düzenlemek için bir işlev seçin ya da oluşturun" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp #: tools/editor/connections_dialog.cpp @@ -287,7 +293,7 @@ msgstr "Kapat" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Signal Arguments:" -msgstr "" +msgstr "İşaret Değiştirgenlerini Düzenle:" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Variable:" @@ -304,176 +310,178 @@ msgstr "Seçilenleri Sil" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/plugins/script_text_editor.cpp msgid "Toggle Breakpoint" -msgstr "" +msgstr "Kesme Noktası Aç/Kapat" #: modules/visual_script/visual_script_editor.cpp msgid "Find Node Type" -msgstr "" +msgstr "Düğüm Türü Bul" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Copy Nodes" -msgstr "Kaynağı Kopyala" +msgstr "Düğümleri Tıpkıla" #: modules/visual_script/visual_script_editor.cpp msgid "Cut Nodes" -msgstr "" +msgstr "Düğümleri Kes" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Paste Nodes" -msgstr "Kaynağı Yapıştır" +msgstr "Düğümleri Yapıştır" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " -msgstr "" +msgstr "Girdi türü yinelenebilir değil: " #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" -msgstr "" +msgstr "Yineleyici geçersiz durumda" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid: " -msgstr "" +msgstr "Yineleyici geçersiz durumda: " #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Invalid index property name." -msgstr "Geçersiz ebeveyn sınıf adı" +msgstr "Geçersiz dizin özelliği adı." #: modules/visual_script/visual_script_func_nodes.cpp msgid "Base object is not a Node!" -msgstr "" +msgstr "Taban nesne bir Düğüm değil!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Path does not lead Node!" -msgstr "" +msgstr "Yol bir düğüme çıkmıyor!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." -msgstr "" +msgstr "%s düğümünde geçersiz dizin özelliği adı '%s'." #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid ": Invalid argument of type: " -msgstr "Geçersiz ebeveyn sınıf adı" +msgstr ": Şu tür için geçersiz değiştirgen: " #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid ": Invalid arguments: " -msgstr "Geçersiz ebeveyn sınıf adı" +msgstr ": Geçersiz değiştirgenler: " #: modules/visual_script/visual_script_nodes.cpp msgid "VariableGet not found in script: " -msgstr "" +msgstr "VariableGet betikte bulunamadı: " #: modules/visual_script/visual_script_nodes.cpp msgid "VariableSet not found in script: " -msgstr "" +msgstr "VariableSet betikte bulunamadı: " #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." -msgstr "" +msgstr "Özel düğüm _step() yöntemine sahip değil, çizgeyi işleyemez." #: modules/visual_script/visual_script_nodes.cpp msgid "" "Invalid return value from _step(), must be integer (seq out), or string " "(error)." msgstr "" +"_step()'ten geçersiz dönüş değeri, tam sayı (dizi çıkışı) ya da dizgi " +"(sorunu) olmalı." #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "yeni basıldı" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "yeni bırakıldı" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" +"Onay belgesi dizeci okunamadı. Yol ve gizyazının her ikisi de doğru mu?" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "" +msgstr "İmza nesnesini oluşturmada sorun." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "Çıkın imzasını oluşturmada sorun." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"Hiçbir dışa aktarım kalıbı bulunamadı.\n" +"Dışa aktarım kalıplarını indirin ve yükleyin.." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." -msgstr "" +msgstr "Özel kusur ayıklama çıkını bulunmadı." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." -msgstr "" +msgstr "Özel yayınlama çıkını bulunamadı." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." -msgstr "Geçersiz isim." +msgstr "Benzersiz Ad Geçersiz." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "Geçersiz yazı tipi boyutu." +msgstr "Geçersiz ürün GUID'i." -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "Geçersiz üst yol" +msgstr "Geçersiz yayıncı GUID'i." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "" +msgstr "Geçersiz arkaplan rengi." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "Geçersiz Yığım Belirtkesi, bedizin boyutları (50x50 olmalı)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "" +msgstr "Geçersiz kare 44x44 belirtkenin bediz boyutları (44x44 olmalı)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "" +msgstr "Geçersiz kare 71x71 belirtkenin bediz boyutları (71x71 olmalı)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "" +msgstr "Geçersiz kare 150x150 belirtkenin bediz boyutları (150x150 olmalı)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "" +msgstr "Geçersiz kare 310x310 belirtkenin bediz boyutları (310x310 olmalı)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "" +msgstr "Geçersiz kare 310x150 belirtkenin bediz boyutları (310x150 olmalı)." -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." -msgstr "" +msgstr "Geçersiz açılış görüntülüğü bediz boyutları (620x300 olmalı)." #: scene/2d/animated_sprite.cpp msgid "" "A SpriteFrames resource must be created or set in the 'Frames' property in " "order for AnimatedSprite to display frames." msgstr "" +"Bir SpriteFrames kaynağı oluşturulmalı ya da 'Kareler' özelliğine atanmalı " +"ki AnimatedSprite düğümü kareleri gösterebilsin." #: scene/2d/canvas_modulate.cpp msgid "" "Only one visible CanvasModulate is allowed per scene (or set of instanced " "scenes). The first created one will work, while the rest will be ignored." msgstr "" +"Sahne başına (ya da bir öbek örneklenmiş sahneler için) yalnızca bir görünür " +"CanvasModulate'e izin verilir. İlk oluşturulan çalışırken diğerleri ihmal " +"edilecektir." #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -481,10 +489,14 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" +"CollisionPolygon2D yalnızca CollisionObject2D'den türeyen düğümlere bir " +"şekil elde etmeye hizmet eder. Lütfen onu yalnızca şunların çocuğu olarak " +"kullanın ve Area2D, StaticBody2D, RigidBody2D, KinematicBody2D vs.'ye bir " +"şekil vermek için kullanın." #: scene/2d/collision_polygon_2d.cpp msgid "An empty CollisionPolygon2D has no effect on collision." -msgstr "" +msgstr "Boş bir CollisionPolygon2D'nin çarpışmaya hiçbir etkisi yoktur." #: scene/2d/collision_shape_2d.cpp msgid "" @@ -492,84 +504,107 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" +"CollisionShape2D yalnızca CollisionObject2D'den türeyen düğümlere bir şekil " +"elde etmeye hizmet eder. Lütfen onu yalnızca şunların çocuğu olarak kullanın " +"ve Area2D, StaticBody2D, RigidBody2D, KinematicBody2D vs.'ye bir şekil " +"vermek için kullanın." #: scene/2d/collision_shape_2d.cpp msgid "" "A shape must be provided for CollisionShape2D to function. Please create a " "shape resource for it!" msgstr "" +"CollisionShape2D'nin işlevini yerine getirmesi için ona bir şekil sağlanması " +"gerekmektedir. Lütfen onun için bir şekil kaynağı oluşturun!" #: scene/2d/light_2d.cpp msgid "" "A texture with the shape of the light must be supplied to the 'texture' " "property." -msgstr "" +msgstr "Işık yüzeyli bir doku, \"doku\" niteliğine sağlanmalıdır." #: scene/2d/light_occluder_2d.cpp msgid "" "An occluder polygon must be set (or drawn) for this occluder to take effect." msgstr "" +"Engelleyicinin etkili olabilmesi için bir engelleyici çokgeni ayarlanmalıdır " +"(ya da çizilmelidir)." #: scene/2d/light_occluder_2d.cpp msgid "The occluder polygon for this occluder is empty. Please draw a polygon!" -msgstr "" +msgstr "Bu engelleyici için engelleyici çokgeni boş. Lütfen bir çokgen çizin!" #: scene/2d/navigation_polygon.cpp msgid "" "A NavigationPolygon resource must be set or created for this node to work. " "Please set a property or draw a polygon." msgstr "" +"Bu düğüm(node) çalışmak için bir NavigationPolygon kaynağı ayarlanmasına ya " +"da oluşturulmasına gereksinim duyar. Lütfen hazır bir tane seçin ya da bir " +"çokgen çizin." #: scene/2d/navigation_polygon.cpp msgid "" "NavigationPolygonInstance must be a child or grandchild to a Navigation2D " "node. It only provides navigation data." msgstr "" +"NavigationPolygonInstance, bir Navigation2D çocuğu olmalı ya da Navigation2D " +"düğümünün torunu olması gerekir. Bu nesne yalnızca yönlendirme verisi sağlar." #: scene/2d/parallax_layer.cpp msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +"ParallaxLayer, yalnızca ParallaxBackground düğümünün çocuğu olduğu zaman " +"çalışır." #: scene/2d/particles_2d.cpp msgid "Path property must point to a valid Particles2D node to work." msgstr "" +"Yol niteliği çalışması için geçerli bir Particles2D düğümünü işaret " +"etmelidir." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "" +"PathFollow2D yalnızca Path2D düğümünün çocuğu olarak ayarlanınca çalışır." #: scene/2d/remote_transform_2d.cpp msgid "Path property must point to a valid Node2D node to work." msgstr "" +"Yol niteliği çalışması için geçerli bir Node2D düğümüne işaret etmelidir." #: scene/2d/sample_player_2d.cpp scene/audio/sample_player.cpp msgid "" "A SampleLibrary resource must be created or set in the 'samples' property in " "order for SamplePlayer to play sound." msgstr "" +"SamplePlayer ın ses çalması için bir SampleLibrary kaynağı oluşturulmalı " +"veya 'örnekler' niteliğinde ayarlanmalıdır." #: scene/2d/sprite.cpp msgid "" "Path property must point to a valid Viewport node to work. Such Viewport " "must be set to 'render target' mode." msgstr "" +"Yol niteliği çalışması için geçerli bir Viewport düğümüne işaret etmelidir. " +"Bu tür Viewport 'işleyici amacı' biçimine ayarlanmalıdır." #: scene/2d/sprite.cpp msgid "" "The Viewport set in the path property must be set as 'render target' in " "order for this sprite to work." msgstr "" +"Bu sprite'ın çalışması için yol niteliğinde ayarlanan Viewport durumu " +"'işleyici amacı' olarak ayarlanmalıdır." #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " "as parent." msgstr "" - -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" +"VisibilityEnable2D düğümü düzenlenmiş sahne kökü doğrudan ata olarak " +"kullanıldığında çalışır." #: scene/3d/body_shape.cpp msgid "" @@ -577,12 +612,17 @@ msgid "" "derived node. Please only use it as a child of Area, StaticBody, RigidBody, " "KinematicBody, etc. to give them a shape." msgstr "" +"CollisionShape sadece CollisionObject türetilmiş bir düğümde çarpışma yüzeyi " +"sağlamaya yarar. Bunların yüzeyine şekil vermek için Area, StaticBody, " +"RigidBody, KinematicBody, v.b. onu sadece bunların çocuğu olarak kullanın." #: scene/3d/body_shape.cpp msgid "" "A shape must be provided for CollisionShape to function. Please create a " "shape resource for it!" msgstr "" +"CollisionShape'in çalışması için bir şekil verilmelidir. Lütfen bunun için " +"bir şekil kaynağı oluşturun!" #: scene/3d/collision_polygon.cpp msgid "" @@ -590,47 +630,63 @@ msgid "" "CollisionObject derived node. Please only use it as a child of Area, " "StaticBody, RigidBody, KinematicBody, etc. to give them a shape." msgstr "" +"CollisionPolygon sadece CollisionObject türetilmiş bir düğümde çarpışma " +"yüzeyi sağlamaya yarar. Bunların yüzeyine şekil vermek için Area, " +"StaticBody, RigidBody, KinematicBody, v.b. onu sadece bunların çocuğu olarak " +"kullanın." #: scene/3d/collision_polygon.cpp msgid "An empty CollisionPolygon has no effect on collision." -msgstr "" +msgstr "Boş bir CollisionPolygon'un çarpışma üzerinde etkisi yoktur." #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" +"Bu düğümün çalışması için bir NavigationMesh kaynağı ayarlanmış veya " +"oluşturulmuş olmalıdır." #: scene/3d/navigation_mesh.cpp msgid "" "NavigationMeshInstance must be a child or grandchild to a Navigation node. " "It only provides navigation data." msgstr "" +"NavigationMeshInstance, bir Navigation düğümünün çocuğu ya da torunu " +"olmalıdır. O yalnızca yönlendirme verisi sağlar." #: scene/3d/remote_transform.cpp msgid "Path property must point to a valid Spatial node to work." msgstr "" +"Yol niteliği, çalışmak için geçerli bir Spatial düğümü işaret etmelidir." #: scene/3d/scenario_fx.cpp msgid "" "Only one WorldEnvironment is allowed per scene (or set of instanced scenes)." msgstr "" +"Her sahne başına (ya da örneklenmiş sahneler dizisine) sadece bir tane " +"WorldEnvironment 'a izin verilir." #: scene/3d/spatial_sample_player.cpp msgid "" "A SampleLibrary resource must be created or set in the 'samples' property in " "order for SpatialSamplePlayer to play sound." msgstr "" +"SpatialSamplePlayer 'ın ses çalması için bir SampleLibrary kaynağı " +"oluşturulmalı veya 'örnekler' niteliğinde ayarlanmalıdır." #: scene/3d/sprite_3d.cpp msgid "" "A SpriteFrames resource must be created or set in the 'Frames' property in " "order for AnimatedSprite3D to display frames." msgstr "" +"AnimatedSprite3D 'nin çerçeveleri görüntülemek için bir SpriteFrames kaynağı " +"oluşturulmalı veya 'Çerçeveler' niteliğinde ayarlanmalıdır." #: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Cancel" -msgstr "İptal" +msgstr "Vazgeç" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "Tamam" @@ -640,19 +696,19 @@ msgstr "Uyarı!" #: scene/gui/dialogs.cpp msgid "Please Confirm..." -msgstr "Lütfen doğrulayınız..." +msgstr "Lütfen Doğrulayın..." #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "File Exists, Overwrite?" -msgstr "Dosya mevcut. Üzerine yazılsın mı?" +msgstr "Dizeç var. Üzerine Yazılsın mı?" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "All Recognized" -msgstr "" +msgstr "Tümü Onaylandı" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "All Files (*)" -msgstr "Tüm dosyalar (*)" +msgstr "Tüm Dizeçler (*)" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp #: tools/editor/editor_help.cpp tools/editor/editor_node.cpp @@ -664,19 +720,19 @@ msgstr "Aç" #: scene/gui/file_dialog.cpp msgid "Open a File" -msgstr "Bir Dosya Aç" +msgstr "Bir Dizeç Aç" #: scene/gui/file_dialog.cpp msgid "Open File(s)" -msgstr "Dosya(ları) aç" +msgstr "Dizeç(leri) Aç" #: scene/gui/file_dialog.cpp msgid "Open a Directory" -msgstr "Bir klasör aç" +msgstr "Bir dizin aç" #: scene/gui/file_dialog.cpp msgid "Open a File or Directory" -msgstr "Bir dosya yada klasör aç" +msgstr "Bir Dizeç ya da Dizin Aç" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp #: tools/editor/editor_node.cpp @@ -687,43 +743,43 @@ msgstr "Kaydet" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "Save a File" -msgstr "Dosyayı kaydet" +msgstr "Dizeci Kaydet" #: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp #: tools/editor/editor_file_dialog.cpp msgid "Create Folder" -msgstr "Yeni klasör" +msgstr "Dizin Oluştur" #: scene/gui/file_dialog.cpp tools/editor/editor_autoload_settings.cpp #: tools/editor/editor_file_dialog.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp #: tools/editor/script_create_dialog.cpp msgid "Path:" -msgstr "Dosya yolu:" +msgstr "Dizeç yolu:" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "Directories & Files:" -msgstr "Klasörler & Dosyalar:" +msgstr "Dizinler & Dizeçler:" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp #: tools/editor/script_editor_debugger.cpp msgid "File:" -msgstr "Dosya:" +msgstr "Dizeç:" #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "Filter:" -msgstr "Filtre:" +msgstr "Süzgeç:" #: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp #: tools/editor/editor_file_dialog.cpp tools/editor/editor_plugin_settings.cpp #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Name:" -msgstr "İsim:" +msgstr "Ad:" #: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp #: tools/editor/editor_file_dialog.cpp msgid "Could not create folder." -msgstr "Klasör oluşturulamadı." +msgstr "Dizin oluşturulamadı." #: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "Must use a valid extension." @@ -750,31 +806,31 @@ msgstr "Meta+" #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Device" -msgstr "Cihaz" +msgstr "Aygıt" #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Button" -msgstr "Buton" +msgstr "Düğme" #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Left Button." -msgstr "Sol tuş." +msgstr "Sol Düğme." #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Right Button." -msgstr "Sağ tuş." +msgstr "Sağ Düğme." #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Middle Button." -msgstr "Orta tuş." +msgstr "Orta Düğme." #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Wheel Up." -msgstr "" +msgstr "Tekerlek Yukarı." #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Wheel Down." -msgstr "" +msgstr "Tekerlek Aşağı." #: scene/gui/input_action.cpp tools/editor/project_settings.cpp msgid "Axis" @@ -791,7 +847,7 @@ msgstr "Kes" #: tools/editor/plugins/shader_editor_plugin.cpp #: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp msgid "Copy" -msgstr "Kopyala" +msgstr "Tıpkıla" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp #: tools/editor/plugins/resource_preloader_editor_plugin.cpp @@ -828,6 +884,9 @@ msgid "" "functions. Making them visible for editing is fine though, but they will " "hide upon running." msgstr "" +"Açılır pencereler popup() veya popup*() işlevlerini çağırmadıkça ön tanımlı " +"olarak gizlenecektir. Onları düzenleme için görünür kılmak da iyidir, ancak " +"çalışırken gizlenecekler." #: scene/main/viewport.cpp msgid "" @@ -836,26 +895,30 @@ msgid "" "obtain a size. Otherwise, make it a RenderTarget and assign its internal " "texture to some node for display." msgstr "" +"Bu görüntü alanı, işleyici amacı olarak ayarlanmadı. İçeriğini doğrudan " +"görüntlükte göstermek istiyorsanız, bir Denetimcinin çocuğu olun ve böylece " +"bir boyut elde edin. Ya da, onu bir RenderTarget yapın ve iç dokusunu " +"görüntülemesi için bir düğüme atayın." #: scene/resources/dynamic_font.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Error initializing FreeType." -msgstr "" +msgstr "FreeType başlatılırken sorun oluştu." #: scene/resources/dynamic_font.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Unknown font format." -msgstr "Bilinmeyen yazıtipi türü." +msgstr "Bilinmeyen yazı türü." #: scene/resources/dynamic_font.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Error loading font." -msgstr "Yazı tipi yüklerken hata." +msgstr "Yazı türü yüklerken sorun oluştu." #: scene/resources/dynamic_font.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Invalid font size." -msgstr "Geçersiz yazı tipi boyutu." +msgstr "Geçersiz yazı türü boyutu." #: tools/editor/animation_editor.cpp msgid "Disabled" @@ -863,84 +926,84 @@ msgstr "Devre dışı" #: tools/editor/animation_editor.cpp msgid "All Selection" -msgstr "Tüm seçilenler" +msgstr "Tüm seçim" #: tools/editor/animation_editor.cpp msgid "Move Add Key" -msgstr "" +msgstr "Açar Eklemeyi Taşı" #: tools/editor/animation_editor.cpp msgid "Anim Change Transition" -msgstr "" +msgstr "Canln Geçişi Değiştir" #: tools/editor/animation_editor.cpp msgid "Anim Change Transform" -msgstr "" +msgstr "Canln Dönüşümü Değiştir" #: tools/editor/animation_editor.cpp msgid "Anim Change Value" -msgstr "" +msgstr "Canln Değeri Değiştir" #: tools/editor/animation_editor.cpp msgid "Anim Change Call" -msgstr "" +msgstr "Canln Çağrıyı Değiştir" #: tools/editor/animation_editor.cpp msgid "Anim Add Track" -msgstr "" +msgstr "Canln İz Ekle" #: tools/editor/animation_editor.cpp msgid "Anim Duplicate Keys" -msgstr "" +msgstr "Canln Açarlarını İkile" #: tools/editor/animation_editor.cpp msgid "Move Anim Track Up" -msgstr "" +msgstr "Canln İzini Yukarı Hareket Ettir" #: tools/editor/animation_editor.cpp msgid "Move Anim Track Down" -msgstr "" +msgstr "Canln İzini Aşağı Hareket Ettir" #: tools/editor/animation_editor.cpp msgid "Remove Anim Track" -msgstr "" +msgstr "Canln İzini Sil" #: tools/editor/animation_editor.cpp msgid "Set Transitions to:" -msgstr "" +msgstr "Geçişleri şuna ayarla:" #: tools/editor/animation_editor.cpp msgid "Anim Track Rename" -msgstr "" +msgstr "Canln İzini Yeniden Adlandır" #: tools/editor/animation_editor.cpp msgid "Anim Track Change Interpolation" -msgstr "" +msgstr "Canln İz Ara Değer Değiştir" #: tools/editor/animation_editor.cpp msgid "Anim Track Change Value Mode" -msgstr "" +msgstr "Canln İzi Değer Değiştir Biçimi" #: tools/editor/animation_editor.cpp msgid "Edit Node Curve" -msgstr "" +msgstr "Düğüm Eğrisini Düzenle" #: tools/editor/animation_editor.cpp msgid "Edit Selection Curve" -msgstr "" +msgstr "Seçim Eğrisini Düzenle" #: tools/editor/animation_editor.cpp msgid "Anim Delete Keys" -msgstr "" +msgstr "Canln Açarları Sil" #: tools/editor/animation_editor.cpp #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Duplicate Selection" -msgstr "" +msgstr "Seçimi İkile" #: tools/editor/animation_editor.cpp msgid "Duplicate Transposed" -msgstr "" +msgstr "Tersine Çevirmeyi İkile" #: tools/editor/animation_editor.cpp msgid "Remove Selection" @@ -960,19 +1023,19 @@ msgstr "Tetikleyici" #: tools/editor/animation_editor.cpp msgid "Anim Add Key" -msgstr "" +msgstr "Canln Açar Ekle" #: tools/editor/animation_editor.cpp msgid "Anim Move Keys" -msgstr "" +msgstr "Canln Açarlarını Taşı" #: tools/editor/animation_editor.cpp msgid "Scale Selection" -msgstr "" +msgstr "Seçimi Ölçekle" #: tools/editor/animation_editor.cpp msgid "Scale From Cursor" -msgstr "" +msgstr "Göstergeden Ölçekle" #: tools/editor/animation_editor.cpp msgid "Goto Next Step" @@ -993,39 +1056,39 @@ msgstr "Sabit" #: tools/editor/animation_editor.cpp msgid "In" -msgstr "" +msgstr "Giriş" #: tools/editor/animation_editor.cpp msgid "Out" -msgstr "" +msgstr "Çıkış" #: tools/editor/animation_editor.cpp msgid "In-Out" -msgstr "" +msgstr "Giriş-Çıkış" #: tools/editor/animation_editor.cpp msgid "Out-In" -msgstr "" +msgstr "Çıkış-Giriş" #: tools/editor/animation_editor.cpp msgid "Transitions" -msgstr "" +msgstr "Geçişler" #: tools/editor/animation_editor.cpp msgid "Optimize Animation" -msgstr "" +msgstr "Canlandırmayı İyileştir" #: tools/editor/animation_editor.cpp msgid "Clean-Up Animation" -msgstr "" +msgstr "Canlandırmayı Temizle" #: tools/editor/animation_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "" +msgstr "%s için yeni iz oluştur ve açar gir?" #: tools/editor/animation_editor.cpp msgid "Create %d NEW tracks and insert keys?" -msgstr "" +msgstr "%d için yeni izler oluştur ve açar gir?" #: tools/editor/animation_editor.cpp tools/editor/create_dialog.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp @@ -1038,43 +1101,43 @@ msgstr "Oluştur" #: tools/editor/animation_editor.cpp msgid "Anim Create & Insert" -msgstr "" +msgstr "Canln Oluştur & Gir" #: tools/editor/animation_editor.cpp msgid "Anim Insert Track & Key" -msgstr "" +msgstr "Canln İz Gir & Açar" #: tools/editor/animation_editor.cpp msgid "Anim Insert Key" -msgstr "" +msgstr "Canln Açar Gir" #: tools/editor/animation_editor.cpp msgid "Change Anim Len" -msgstr "" +msgstr "Canln Uzunluğu Değiştir" #: tools/editor/animation_editor.cpp msgid "Change Anim Loop" -msgstr "" +msgstr "Canln Döngüsünü Değiştir" #: tools/editor/animation_editor.cpp msgid "Anim Create Typed Value Key" -msgstr "" +msgstr "Canln Yazılı Değer Açarı Oluştur" #: tools/editor/animation_editor.cpp msgid "Anim Insert" -msgstr "" +msgstr "Canln Gir" #: tools/editor/animation_editor.cpp msgid "Anim Scale Keys" -msgstr "" +msgstr "Canln Açarı Ölçekle" #: tools/editor/animation_editor.cpp msgid "Anim Add Call Track" -msgstr "" +msgstr "Canln İzi Çağırma Ekle" #: tools/editor/animation_editor.cpp msgid "Animation zoom." -msgstr "" +msgstr "Canlandırma yaklaş." #: tools/editor/animation_editor.cpp msgid "Length (s):" @@ -1082,7 +1145,7 @@ msgstr "Uzunluk (lar):" #: tools/editor/animation_editor.cpp msgid "Animation length (in seconds)." -msgstr "Animasyon uzunluğu (saniye)." +msgstr "Canlandırma uzunluğu (saniye)." #: tools/editor/animation_editor.cpp msgid "Step (s):" @@ -1090,99 +1153,101 @@ msgstr "Adım (lar):" #: tools/editor/animation_editor.cpp msgid "Cursor step snap (in seconds)." -msgstr "" +msgstr "Gösterge şipşak adımla (saniyelerde)." #: tools/editor/animation_editor.cpp msgid "Enable/Disable looping in animation." -msgstr "Animasyon tekrarını Aç/Kapat." +msgstr "Canlandırma yinelemesini Aç/Kapat." #: tools/editor/animation_editor.cpp msgid "Add new tracks." -msgstr "" +msgstr "Yeni izler ekle." #: tools/editor/animation_editor.cpp msgid "Move current track up." -msgstr "" +msgstr "Mevcut izi yukarı al." #: tools/editor/animation_editor.cpp msgid "Move current track down." -msgstr "" +msgstr "Mevcut izi aşağı al." #: tools/editor/animation_editor.cpp msgid "Remove selected track." -msgstr "" +msgstr "Seçilen izleri sil." #: tools/editor/animation_editor.cpp msgid "Track tools" -msgstr "" +msgstr "İz araçları" #: tools/editor/animation_editor.cpp msgid "Enable editing of individual keys by clicking them." -msgstr "" +msgstr "Özgün açarların düzenlenebilmesini onları tıklayarak etkinleştirin." #: tools/editor/animation_editor.cpp msgid "Anim. Optimizer" -msgstr "" +msgstr "Cnln. İyileştirici" #: tools/editor/animation_editor.cpp msgid "Max. Linear Error:" -msgstr "" +msgstr "En üst Doğrusal Sorun:" #: tools/editor/animation_editor.cpp msgid "Max. Angular Error:" -msgstr "" +msgstr "En üst Açısal Sorun:" #: tools/editor/animation_editor.cpp msgid "Max Optimizable Angle:" -msgstr "" +msgstr "Max İyileştirilebilir Açı:" #: tools/editor/animation_editor.cpp msgid "Optimize" -msgstr "" +msgstr "İyileştir" #: tools/editor/animation_editor.cpp msgid "Select an AnimationPlayer from the Scene Tree to edit animations." msgstr "" +"Sahne Ağacından canlandırmaları düzenleyebilmek için bir AnimationPlayer " +"seçin." #: tools/editor/animation_editor.cpp msgid "Key" -msgstr "" +msgstr "Açar" #: tools/editor/animation_editor.cpp msgid "Transition" -msgstr "" +msgstr "Geçiş" #: tools/editor/animation_editor.cpp msgid "Scale Ratio:" -msgstr "" +msgstr "Ölçek Oranı:" #: tools/editor/animation_editor.cpp msgid "Call Functions in Which Node?" -msgstr "" +msgstr "Hangi düğümdeki İşlevler Çağrılsın?" #: tools/editor/animation_editor.cpp msgid "Remove invalid keys" -msgstr "" +msgstr "Geçersiz açarları kaldır" #: tools/editor/animation_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "" +msgstr "Çözümlenmemiş ve boş izleri sil" #: tools/editor/animation_editor.cpp msgid "Clean-up all animations" -msgstr "" +msgstr "Tüm canlandırmaları temizle" #: tools/editor/animation_editor.cpp msgid "Clean-Up Animation(s) (NO UNDO!)" -msgstr "" +msgstr "Canlandırma(ları) Temizle (GERİ ALINAMAZ!)" #: tools/editor/animation_editor.cpp msgid "Clean-Up" -msgstr "" +msgstr "Temizle" #: tools/editor/array_property_edit.cpp msgid "Resize Array" -msgstr "Diziyi Yeniden Boyutlandır" +msgstr "Sırayı Yeniden Boyutlandır" #: tools/editor/array_property_edit.cpp msgid "Change Array Value Type" @@ -1190,7 +1255,7 @@ msgstr "Dizinin türünü degistir" #: tools/editor/array_property_edit.cpp msgid "Change Array Value" -msgstr "" +msgstr "Dizi Değerini Değiştir" #: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp #: tools/editor/editor_help.cpp tools/editor/editor_node.cpp @@ -1211,7 +1276,7 @@ msgstr "Tersi" #: tools/editor/asset_library_editor_plugin.cpp #: tools/editor/project_settings.cpp msgid "Category:" -msgstr "Kategori:" +msgstr "Katman:" #: tools/editor/asset_library_editor_plugin.cpp msgid "All" @@ -1219,7 +1284,7 @@ msgstr "Hepsi" #: tools/editor/asset_library_editor_plugin.cpp msgid "Site:" -msgstr "Site:" +msgstr "Yer:" #: tools/editor/asset_library_editor_plugin.cpp msgid "Support.." @@ -1235,35 +1300,35 @@ msgstr "Topluluk" #: tools/editor/asset_library_editor_plugin.cpp msgid "Testing" -msgstr "" +msgstr "Deneme" #: tools/editor/asset_library_editor_plugin.cpp msgid "Assets ZIP File" -msgstr "" +msgstr "Varlıkların ZIP Dizeci" #: tools/editor/call_dialog.cpp msgid "Method List For '%s':" -msgstr "" +msgstr "'%s' İçin Yöntem Dizelgesi:" #: tools/editor/call_dialog.cpp msgid "Method List:" -msgstr "" +msgstr "Yöntem Dizelgesi:" #: tools/editor/call_dialog.cpp msgid "Arguments:" -msgstr "" +msgstr "Değiştirgenler:" #: tools/editor/call_dialog.cpp msgid "Return:" -msgstr "" +msgstr "Döndür:" #: tools/editor/code_editor.cpp msgid "Go to Line" -msgstr "Satıra Git" +msgstr "Dizeye Git" #: tools/editor/code_editor.cpp msgid "Line Number:" -msgstr "Satır numarası:" +msgstr "Dize Numarası:" #: tools/editor/code_editor.cpp msgid "No Matches" @@ -1271,27 +1336,27 @@ msgstr "Eşleşme Bulunamadı" #: tools/editor/code_editor.cpp msgid "Replaced %d Ocurrence(s)." -msgstr "" +msgstr "%d Olgusu(ları) ile Değiştirildi." #: tools/editor/code_editor.cpp msgid "Replace" -msgstr "" +msgstr "Değiştir" #: tools/editor/code_editor.cpp msgid "Replace All" -msgstr "" +msgstr "Tümünü Değiştir" #: tools/editor/code_editor.cpp msgid "Match Case" -msgstr "" +msgstr "Durumla Eşleştir" #: tools/editor/code_editor.cpp msgid "Whole Words" -msgstr "" +msgstr "Tüm Sözcükler" #: tools/editor/code_editor.cpp msgid "Selection Only" -msgstr "" +msgstr "Yalnızca Seçim" #: tools/editor/code_editor.cpp tools/editor/editor_help.cpp #: tools/editor/plugins/script_editor_plugin.cpp @@ -1299,7 +1364,7 @@ msgstr "" #: tools/editor/plugins/shader_editor_plugin.cpp #: tools/editor/project_settings.cpp msgid "Search" -msgstr "" +msgstr "Ara" #: tools/editor/code_editor.cpp tools/editor/editor_help.cpp msgid "Find" @@ -1311,7 +1376,7 @@ msgstr "İleri" #: tools/editor/code_editor.cpp msgid "Replaced %d ocurrence(s)." -msgstr "" +msgstr "%d Olgusu(ları) ile Değiştirildi." #: tools/editor/code_editor.cpp msgid "Not found!" @@ -1319,19 +1384,19 @@ msgstr "Bulunamadı!" #: tools/editor/code_editor.cpp msgid "Replace By" -msgstr "" +msgstr "Şununla Değiştir" #: tools/editor/code_editor.cpp msgid "Case Sensitive" -msgstr "" +msgstr "Büyük Küçük Damga Duyarlı" #: tools/editor/code_editor.cpp msgid "Backwards" -msgstr "" +msgstr "Terse doğru" #: tools/editor/code_editor.cpp msgid "Prompt On Replace" -msgstr "" +msgstr "Değişimi Sor" #: tools/editor/code_editor.cpp msgid "Skip" @@ -1340,7 +1405,7 @@ msgstr "Geç" #: tools/editor/code_editor.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom In" -msgstr "Yakınlaştır" +msgstr "Yaklaş" #: tools/editor/code_editor.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp @@ -1349,29 +1414,31 @@ msgstr "Uzaklaştır" #: tools/editor/code_editor.cpp msgid "Reset Zoom" -msgstr "" +msgstr "Yaklaşmayı Sıfırla" #: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp msgid "Line:" -msgstr "Satır:" +msgstr "Dize:" #: tools/editor/code_editor.cpp msgid "Col:" -msgstr "" +msgstr "Dik:" #: tools/editor/connections_dialog.cpp msgid "Method in target Node must be specified!" -msgstr "" +msgstr "Hedef Node daki Yöntem belirtilmeli!" #: tools/editor/connections_dialog.cpp msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"Amaçlanan yöntem bulunamadı! Geçerli bir yöntem belirtin veya amaçlanan " +"Düğüme bir betik iliştirin." #: tools/editor/connections_dialog.cpp msgid "Connect To Node:" -msgstr "Düğüme bağlan:" +msgstr "Düğüme Bağlan:" #: tools/editor/connections_dialog.cpp #: tools/editor/editor_autoload_settings.cpp tools/editor/groups_editor.cpp @@ -1390,43 +1457,43 @@ msgstr "Kaldır" #: tools/editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "" +msgstr "Ayrı Çağrı Değiştirgeni Ekleyin:" #: tools/editor/connections_dialog.cpp msgid "Extra Call Arguments:" -msgstr "" +msgstr "Ayrıca Çağrı Değiştirgenler:" #: tools/editor/connections_dialog.cpp msgid "Path to Node:" -msgstr "" +msgstr "Düğüm Yolu:" #: tools/editor/connections_dialog.cpp msgid "Make Function" -msgstr "" +msgstr "İşlev Yap" #: tools/editor/connections_dialog.cpp msgid "Deferred" -msgstr "" +msgstr "Ertelenmiş" #: tools/editor/connections_dialog.cpp msgid "Oneshot" -msgstr "" +msgstr "Tek sefer" #: tools/editor/connections_dialog.cpp msgid "Connect" -msgstr "" +msgstr "Bağla" #: tools/editor/connections_dialog.cpp msgid "Connect '%s' to '%s'" -msgstr "" +msgstr "Bunu '%s' şuna '%s' Bağla" #: tools/editor/connections_dialog.cpp msgid "Connecting Signal:" -msgstr "" +msgstr "İşarete Bağlanıyor:" #: tools/editor/connections_dialog.cpp msgid "Create Subscription" -msgstr "" +msgstr "Üyelik Oluştur" #: tools/editor/connections_dialog.cpp msgid "Connect.." @@ -1439,7 +1506,7 @@ msgstr "Bağlantıyı kes" #: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp msgid "Signals" -msgstr "" +msgstr "İşaretler" #: tools/editor/create_dialog.cpp msgid "Create New" @@ -1448,7 +1515,7 @@ msgstr "Yeni oluştur" #: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp #: tools/editor/filesystem_dock.cpp msgid "Favorites:" -msgstr "Favoriler:" +msgstr "Beğeniler:" #: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp msgid "Recent:" @@ -1467,25 +1534,27 @@ msgstr "Açıklama:" #: tools/editor/dependency_editor.cpp msgid "Search Replacement For:" -msgstr "" +msgstr "Şunun İçin Değişikliği Ara:" #: tools/editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "" +msgstr "Şunun İçin Bağımlılıklar:" #: tools/editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" "Changes will not take effect unless reloaded." msgstr "" -"'%s' Sahnesi şuanda düzenleniyor.\n" -"Tekrar yüklenene kadar değişiklikler etki etmeyecek." +"'%s' Sahnesi şu anda düzenleniyor.\n" +"Yeniden yüklenene kadar değişiklikler etki etmeyecek." #: tools/editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" "Changes will take effect when reloaded." msgstr "" +"Kaynak '%s' kullanımda.\n" +"Değişiklikler yeniden yükleme yapılınca etkin olacak." #: tools/editor/dependency_editor.cpp msgid "Dependencies" @@ -1498,27 +1567,27 @@ msgstr "Kaynak" #: tools/editor/dependency_editor.cpp tools/editor/editor_autoload_settings.cpp #: tools/editor/project_manager.cpp tools/editor/project_settings.cpp msgid "Path" -msgstr "" +msgstr "Yol" #: tools/editor/dependency_editor.cpp msgid "Dependencies:" -msgstr "" +msgstr "Bağımlılıklar:" #: tools/editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "" +msgstr "Bozulanı Onar" #: tools/editor/dependency_editor.cpp msgid "Dependency Editor" -msgstr "" +msgstr "Bağımlılık Düzenleyicisi" #: tools/editor/dependency_editor.cpp msgid "Search Replacement Resource:" -msgstr "" +msgstr "Değişim Kaynağını Ara:" #: tools/editor/dependency_editor.cpp msgid "Owners Of:" -msgstr "" +msgstr "Bunun Sahibi:" #: tools/editor/dependency_editor.cpp msgid "" @@ -1526,29 +1595,28 @@ msgid "" "work.\n" "Remove them anyway? (no undo)" msgstr "" -"Kaldırılmakta olan dosyalar başka dosyaların çalışması için gerekli.\n" -"Yine de kaldırmak istiyor musunuz?(Geri alınamaz)" +"Kaldırılmakta olan dizeçler başka dizeçlerin çalışması için gerekli.\n" +"Yine de kaldırmak istiyor musunuz? (Geri alınamaz)" #: tools/editor/dependency_editor.cpp msgid "Remove selected files from the project? (no undo)" -msgstr "Seçili dosyaları projeden kaldır? (Geri alınamaz)" +msgstr "Seçili dizeçleri tasarıdan kaldır? (Geri alınamaz)" #: tools/editor/dependency_editor.cpp msgid "Error loading:" -msgstr "Yüklerken hata:" +msgstr "Yüklerken sorun:" #: tools/editor/dependency_editor.cpp msgid "Scene failed to load due to missing dependencies:" -msgstr "" -"Sahnede ki kayıp bağımlılıklar yüzünden sahneyi yükleme başarısız oldu:" +msgstr "Sahnedeki kayıp bağımlılıklar yüzünden sahneyi yükleme başarısız oldu:" #: tools/editor/dependency_editor.cpp msgid "Open Anyway" -msgstr "Yinede Aç" +msgstr "Yine de Aç" #: tools/editor/dependency_editor.cpp msgid "Which action should be taken?" -msgstr "" +msgstr "Hangi eylem alınmalı?" #: tools/editor/dependency_editor.cpp msgid "Fix Dependencies" @@ -1556,27 +1624,27 @@ msgstr "Bağımlılıkları düzelt" #: tools/editor/dependency_editor.cpp msgid "Errors loading!" -msgstr "Yüklemede hata!" +msgstr "Yükleme sorunları!" #: tools/editor/dependency_editor.cpp msgid "Permanently delete %d item(s)? (No undo!)" -msgstr "%d Öğeleri kalıcı olarak sil? (No undo!)" +msgstr "%d Öğeleri kalıcı olarak silsin mi? (Geri alınamaz!)" #: tools/editor/dependency_editor.cpp msgid "Owns" -msgstr "" +msgstr "Sahipler" #: tools/editor/dependency_editor.cpp msgid "Resources Without Explicit Ownership:" -msgstr "" +msgstr "Belirgin Sahipliği Olmayan Kaynaklar:" #: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp msgid "Orphan Resource Explorer" -msgstr "" +msgstr "Orphan Kaynak Gezgini" #: tools/editor/dependency_editor.cpp msgid "Delete selected files?" -msgstr "Seçili dosyaları sil?" +msgstr "Seçili dizeçleri sil?" #: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp #: tools/editor/filesystem_dock.cpp @@ -1587,23 +1655,23 @@ msgstr "Sil" #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name." -msgstr "Geçersiz isim." +msgstr "Geçersiz ad." #: tools/editor/editor_autoload_settings.cpp msgid "Valid characters:" -msgstr "Gecerli karakterler:" +msgstr "Geçerli damgalar:" #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name. Must not collide with an existing engine class name." -msgstr "Geçersiz isim. Motora kullanılan sınıf adları kullanılamaz." +msgstr "Geçersiz ad. Devinimcide kullanılan bölüt adları kullanılamaz." #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name. Must not collide with an existing buit-in type name." -msgstr "" +msgstr "Geçersiz ad. Var olan gömülü türdeki ad ile çakışmamalı." #: tools/editor/editor_autoload_settings.cpp msgid "Invalid name. Must not collide with an existing global constant name." -msgstr "Geçersiz isim. İsim , evrensel sabit isimleriyle aynı olamaz." +msgstr "Geçersiz ad. Var olan genel değişmeyen bir adla çakışmamalıdır." #: tools/editor/editor_autoload_settings.cpp msgid "Invalid Path." @@ -1611,36 +1679,35 @@ msgstr "Gecersiz Yol." #: tools/editor/editor_autoload_settings.cpp msgid "File does not exist." -msgstr "Dosya mevcut değil." +msgstr "Dizeç yok." #: tools/editor/editor_autoload_settings.cpp msgid "Not in resource path." -msgstr "Kaynak yolunda degil." +msgstr "Kaynak yolunda değil." #: tools/editor/editor_autoload_settings.cpp -#, fuzzy msgid "Add AutoLoad" -msgstr "AutoLoad ekle" +msgstr "KendindenYüklenme Ekle" #: tools/editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" -msgstr "" +msgstr "KendindenYüklenme '%s' zaten var!" #: tools/editor/editor_autoload_settings.cpp msgid "Rename Autoload" -msgstr "" +msgstr "KendindenYüklenme'yi Yeniden Adlandır" #: tools/editor/editor_autoload_settings.cpp msgid "Toggle AutoLoad Globals" -msgstr "" +msgstr "KendindenYüklenme Bütünsellerini Aç / Kapat" #: tools/editor/editor_autoload_settings.cpp msgid "Move Autoload" -msgstr "" +msgstr "KendindenYüklenme'yi Taşı" #: tools/editor/editor_autoload_settings.cpp msgid "Remove Autoload" -msgstr "" +msgstr "KendindenYüklenme'yi Kaldır" #: tools/editor/editor_autoload_settings.cpp msgid "Enable" @@ -1648,7 +1715,7 @@ msgstr "Etkin" #: tools/editor/editor_autoload_settings.cpp msgid "Rearrange Autoloads" -msgstr "" +msgstr "KendindenYüklenme'leri Yeniden Sırala" #: tools/editor/editor_autoload_settings.cpp msgid "Node Name:" @@ -1659,15 +1726,15 @@ msgstr "Düğüm adı:" #: tools/editor/plugins/sample_library_editor_plugin.cpp #: tools/editor/project_manager.cpp msgid "Name" -msgstr "İsim" +msgstr "Ad" #: tools/editor/editor_autoload_settings.cpp msgid "Singleton" -msgstr "Tekil (Singleton)" +msgstr "Tekil" #: tools/editor/editor_autoload_settings.cpp msgid "List:" -msgstr "Liste:" +msgstr "Dizelge:" #: tools/editor/editor_data.cpp msgid "Updating Scene" @@ -1707,35 +1774,35 @@ msgstr "Yenile" #: tools/editor/editor_file_dialog.cpp msgid "Toggle Hidden Files" -msgstr "" +msgstr "Gizli Dizeçleri Aç / Kapat" #: tools/editor/editor_file_dialog.cpp msgid "Toggle Favorite" -msgstr "" +msgstr "Beğenileni Aç / Kapat" #: tools/editor/editor_file_dialog.cpp msgid "Toggle Mode" -msgstr "" +msgstr "Aç / Kapat Biçimi" #: tools/editor/editor_file_dialog.cpp msgid "Focus Path" -msgstr "" +msgstr "Yola Odaklan" #: tools/editor/editor_file_dialog.cpp msgid "Move Favorite Up" -msgstr "" +msgstr "Beğenileni Yukarı Taşı" #: tools/editor/editor_file_dialog.cpp msgid "Move Favorite Down" -msgstr "" +msgstr "Beğenileni Aşağı Taşı" #: tools/editor/editor_file_dialog.cpp msgid "Preview:" -msgstr "Ön izleme:" +msgstr "Önizleme:" #: tools/editor/editor_file_system.cpp msgid "ScanSources" -msgstr "" +msgstr "KaynaklarıTara" #: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp msgid "Search Help" @@ -1743,44 +1810,49 @@ msgstr "Yardım Ara" #: tools/editor/editor_help.cpp msgid "Class List:" -msgstr "Sınıf Listesi:" +msgstr "Bölüt Dizelgesi:" #: tools/editor/editor_help.cpp msgid "Search Classes" -msgstr "Sınıfları Ara" +msgstr "Bölütleri Ara" #: tools/editor/editor_help.cpp tools/editor/property_editor.cpp msgid "Class:" -msgstr "Sınıf:" +msgstr "Bölüt:" #: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp #: tools/editor/script_create_dialog.cpp msgid "Inherits:" -msgstr "" +msgstr "Kalıtçılar:" #: tools/editor/editor_help.cpp msgid "Inherited by:" -msgstr "Tarafından miras alındı:" +msgstr "Tarafından kalıt alındı:" #: tools/editor/editor_help.cpp msgid "Brief Description:" -msgstr "" +msgstr "Kısa Açıklama:" #: tools/editor/editor_help.cpp msgid "Public Methods:" -msgstr "Public Metodlar:" +msgstr "Açık Yöntemler:" #: tools/editor/editor_help.cpp msgid "GUI Theme Items:" -msgstr "Arayüz Tema Öğeleri:" +msgstr "Arayüz Kalıbı Öğeleri:" #: tools/editor/editor_help.cpp msgid "Constants:" msgstr "Sabitler:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "Kısa Açıklama:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" -msgstr "Metot Açıklaması:" +msgstr "Yöntem Açıklaması:" #: tools/editor/editor_help.cpp msgid "Search Text" @@ -1796,27 +1868,27 @@ msgstr "Silinen:" #: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp msgid "Error saving atlas:" -msgstr "Atlas kaydedilirken hata oluştu:" +msgstr "Atlas kaydedilirken sorun oluştu:" #: tools/editor/editor_import_export.cpp msgid "Could not save atlas subtexture:" -msgstr "" +msgstr "Atlas alt dokusu kaydedilemedi:" #: tools/editor/editor_import_export.cpp msgid "Storing File:" -msgstr "" +msgstr "Dizeci Depoluyor:" #: tools/editor/editor_import_export.cpp msgid "Packing" -msgstr "" +msgstr "Çıkınla" #: tools/editor/editor_import_export.cpp msgid "Exporting for %s" -msgstr "" +msgstr "%s için Dışa Aktarım" #: tools/editor/editor_import_export.cpp msgid "Setting Up.." -msgstr "" +msgstr "Kurulum..." #: tools/editor/editor_log.cpp msgid " Output:" @@ -1824,43 +1896,45 @@ msgstr " Çıktı:" #: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp msgid "Re-Importing" -msgstr "" +msgstr "Yeniden-İçe Aktarım" #: tools/editor/editor_node.cpp msgid "Importing:" -msgstr "" +msgstr "İçe Aktarım:" #: tools/editor/editor_node.cpp msgid "Node From Scene" -msgstr "" +msgstr "Sahneden Düğüm(node)" #: tools/editor/editor_node.cpp #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/resources_dock.cpp msgid "Error saving resource!" -msgstr "" +msgstr "Kaynak kaydedilirken sorun!" #: tools/editor/editor_node.cpp #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/resources_dock.cpp msgid "Save Resource As.." -msgstr "Kaynağı Farklı Kaydet.." +msgstr "Kaynağı Başkaca Kaydet.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "Anlıyorum.." #: tools/editor/editor_node.cpp msgid "Can't open file for writing:" -msgstr "Dosya yazmak için açılamıyor:" +msgstr "Dizeç yazmak için açılamıyor:" #: tools/editor/editor_node.cpp msgid "Requested file format unknown:" -msgstr "Talep edilen dosya formatı bilinmiyor:" +msgstr "İstenilen dizeç formatı bilinmiyor:" #: tools/editor/editor_node.cpp msgid "Error while saving." -msgstr "Kaydedilirken hata oluştu." +msgstr "Kaydedilirken sorun oluştu." #: tools/editor/editor_node.cpp msgid "Saving Scene" @@ -1868,64 +1942,64 @@ msgstr "Sahne Kaydediliyor" #: tools/editor/editor_node.cpp msgid "Analyzing" -msgstr "Analiz Ediliyor" +msgstr "Çözümleniyor" #: tools/editor/editor_node.cpp msgid "Creating Thumbnail" -msgstr "Küçük Resim Oluşturuluyor" +msgstr "Küçük Bediz Oluşturuluyor" #: tools/editor/editor_node.cpp msgid "" "Couldn't save scene. Likely dependencies (instances) couldn't be satisfied." -msgstr "" +msgstr "Sahne kaydedilemedi. Anlaşılan bağımlılıklar (örnekler) karşılanamadı." #: tools/editor/editor_node.cpp msgid "Failed to load resource." -msgstr "Kaynak yüklenirken hata oluştu." +msgstr "Kaynak yüklenirken sorun oluştu." #: tools/editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" -msgstr "" +msgstr "Birleştirme için MeshLibrary yüklenemedi!" #: tools/editor/editor_node.cpp msgid "Error saving MeshLibrary!" -msgstr "" +msgstr "MeshLibrary kayıt edilirken sorun!" #: tools/editor/editor_node.cpp msgid "Can't load TileSet for merging!" -msgstr "" +msgstr "TileSet birleştirme için yüklenemedi!" #: tools/editor/editor_node.cpp msgid "Error saving TileSet!" -msgstr "" +msgstr "TileSet kayıt edilirken sorun!" #: tools/editor/editor_node.cpp msgid "Can't open export templates zip." -msgstr "" +msgstr "Dışa aktarım kalıplarının zipi açılamadı." #: tools/editor/editor_node.cpp msgid "Loading Export Templates" -msgstr "" +msgstr "Dışa Aktarım Kalıpları Yükleniyor" #: tools/editor/editor_node.cpp msgid "Error trying to save layout!" -msgstr "Düzen kaydedilmeye çalışılırken hata oluştu!" +msgstr "Tasarım kaydedilmeye çalışılırken sorun oluştu!" #: tools/editor/editor_node.cpp msgid "Default editor layout overridden." -msgstr "" +msgstr "Önyüklü düzenleyici tasarımı geçersiz kılındı." #: tools/editor/editor_node.cpp msgid "Layout name not found!" -msgstr "" +msgstr "Tasarım adı bulunamadı!" #: tools/editor/editor_node.cpp msgid "Restored default layout to base settings." -msgstr "" +msgstr "Önyüklü tasarım temel ayarlara onarıldı." #: tools/editor/editor_node.cpp msgid "Copy Params" -msgstr "Parametreleri Kopyala" +msgstr "Değişkenleri Tıpkıla" #: tools/editor/editor_node.cpp msgid "Paste Params" @@ -1938,12 +2012,11 @@ msgstr "Kaynağı Yapıştır" #: tools/editor/editor_node.cpp msgid "Copy Resource" -msgstr "Kaynağı Kopyala" +msgstr "Kaynağı Tıpkıla" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Make Built-In" -msgstr "Göm" +msgstr "Gömülü Yap" #: tools/editor/editor_node.cpp msgid "Make Sub-Resources Unique" @@ -1963,6 +2036,9 @@ msgid "" "You can change it later in later in \"Project Settings\" under the " "'application' category." msgstr "" +"Hiçbir ana sahne tanımlanmadı, birini seçiniz?\n" +"Daha sonra \"uygulama\" kategorisinin altındaki \"Tasarı Ayarları\" ndan " +"değiştirebilirsiniz." #: tools/editor/editor_node.cpp msgid "" @@ -1970,6 +2046,9 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"Seçilen sahne '%s' mevcut değil, geçerli bir tane seçin?\n" +"Daha sonra \"uygulama\" kategorisinin altındaki \"Tasarı Ayarları\" ndan " +"değiştirebilirsiniz." #: tools/editor/editor_node.cpp msgid "" @@ -1977,10 +2056,13 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"Seçilen sahne '%s' bir sahne dizeci değil, geçerli bir tane seç?\n" +"Daha sonra \"uygulama\" kategorisinin altındaki \"Tasarı Ayarları\" ndan " +"değiştirebilirsiniz." #: tools/editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." -msgstr "Mevcut sahne hiç kaydedilmedi,lütfen çalıştırmadan önce kaydediniz." +msgstr "Şimdiki sahne hiç kaydedilmedi, lütfen çalıştırmadan önce kaydediniz." #: tools/editor/editor_node.cpp msgid "Could not start subprocess!" @@ -2008,11 +2090,11 @@ msgstr "Evet" #: tools/editor/editor_node.cpp msgid "Close scene? (Unsaved changes will be lost)" -msgstr "Sahneyi kapat? (Kaydedilmemiş değişiklikler yok olacak)" +msgstr "Sahneyi kapatsın mı? (Kaydedilmemiş değişiklikler yok olacak)" #: tools/editor/editor_node.cpp msgid "Save Scene As.." -msgstr "Sahneyi Farklı Kaydet.." +msgstr "Sahneyi Başkaca Kaydet.." #: tools/editor/editor_node.cpp msgid "This scene has never been saved. Save before running?" @@ -2028,164 +2110,171 @@ msgstr "Çevirilebilir Metinleri Kaydet" #: tools/editor/editor_node.cpp msgid "Export Mesh Library" -msgstr "" +msgstr "Örüntü Betikevini Dışa Aktar" #: tools/editor/editor_node.cpp msgid "Export Tile Set" -msgstr "" +msgstr "Döşenti Dizi Dışa Aktar" #: tools/editor/editor_node.cpp msgid "Quit" -msgstr "" +msgstr "Çıkış" #: tools/editor/editor_node.cpp msgid "Exit the editor?" -msgstr "" +msgstr "Düzenleyiciden çık?" #: tools/editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "" +msgstr "Var olan sahne kaydedilmedi. Yine de açılsın mı?" #: tools/editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "" +msgstr "Hiç kaydedilmemiş bir sahne yeniden yüklenemiyor." #: tools/editor/editor_node.cpp msgid "Revert" -msgstr "" +msgstr "Geri dön" #: tools/editor/editor_node.cpp msgid "This action cannot be undone. Revert anyway?" -msgstr "" +msgstr "Bu eylem geri alınamaz. Yine de geri dönsün mü?" #: tools/editor/editor_node.cpp msgid "Quick Run Scene.." -msgstr "" +msgstr "Sahneyi Hızlı Çalıştır.." #: tools/editor/editor_node.cpp msgid "" "Open Project Manager? \n" "(Unsaved changes will be lost)" msgstr "" +"Tasarı Yöneticisini Aç\n" +"(Kaydedilmemiş değişiklikler kaybolacak!)" #: tools/editor/editor_node.cpp msgid "Pick a Main Scene" -msgstr "" +msgstr "Bir Ana Sahne Seç" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" -msgstr "" +msgstr "Öff" #: tools/editor/editor_node.cpp msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." msgstr "" +"Sahne yüklenirken sorun oluştu, tasarı yolunun içinde olmalı. Sahneyi açmak " +"için 'İçe Aktar' seçeneğini kullanın, ardından tasarının yolunun içine " +"kaydedin." #: tools/editor/editor_node.cpp msgid "Error loading scene." -msgstr "" +msgstr "Sahne yüklenirken sorun oluştu." #: tools/editor/editor_node.cpp msgid "Scene '%s' has broken dependencies:" -msgstr "" +msgstr "Sahne '%s' bağımlılıkları koptu:" #: tools/editor/editor_node.cpp msgid "Save Layout" -msgstr "" +msgstr "Tasarımı Kaydet" #: tools/editor/editor_node.cpp msgid "Delete Layout" -msgstr "" +msgstr "Tasarımı Sil" #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Default" -msgstr "" +msgstr "Önyüklü" #: tools/editor/editor_node.cpp msgid "Switch Scene Tab" -msgstr "" +msgstr "Sahne Sekmesine Geç" #: tools/editor/editor_node.cpp msgid "%d more file(s)" -msgstr "" +msgstr "%d daha çok dizeç(ler)" #: tools/editor/editor_node.cpp msgid "%d more file(s) or folder(s)" -msgstr "" +msgstr "%d daha çok dizeç(ler) veya dizin(ler)" #: tools/editor/editor_node.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Scene" -msgstr "" +msgstr "Sahne" #: tools/editor/editor_node.cpp msgid "Go to previously opened scene." -msgstr "" +msgstr "Daha önce açılan sahneye git." #: tools/editor/editor_node.cpp msgid "Next tab" -msgstr "" +msgstr "Sonraki sekme" #: tools/editor/editor_node.cpp msgid "Previous tab" -msgstr "" +msgstr "Önceki sekme" #: tools/editor/editor_node.cpp msgid "Operations with scene files." -msgstr "" +msgstr "Sahne dizeçlerinin işlemleri." #: tools/editor/editor_node.cpp msgid "New Scene" -msgstr "" +msgstr "Yeni Sahne" #: tools/editor/editor_node.cpp msgid "New Inherited Scene.." -msgstr "" +msgstr "Yeni Kalıt Alınmış Sahne .." #: tools/editor/editor_node.cpp msgid "Open Scene.." -msgstr "" +msgstr "Sahne Aç.." #: tools/editor/editor_node.cpp msgid "Save Scene" -msgstr "" +msgstr "Sahne Kaydet" #: tools/editor/editor_node.cpp msgid "Save all Scenes" -msgstr "" +msgstr "Tüm Sahneleri Kaydet" #: tools/editor/editor_node.cpp msgid "Close Scene" -msgstr "" +msgstr "Sahneyi Kapat" #: tools/editor/editor_node.cpp msgid "Close Goto Prev. Scene" -msgstr "" +msgstr "Önc. Sahneye Git sekmesini Kapat" #: tools/editor/editor_node.cpp msgid "Open Recent" -msgstr "" +msgstr "En Sonuncuyu Aç" #: tools/editor/editor_node.cpp msgid "Quick Filter Files.." -msgstr "" +msgstr "Hızlı Süzgeç Dizeçleri.." #: tools/editor/editor_node.cpp msgid "Convert To.." -msgstr "" +msgstr "Şuna Dönüştür.." #: tools/editor/editor_node.cpp msgid "Translatable Strings.." -msgstr "" +msgstr "Çevirilebilir Dizeler.." #: tools/editor/editor_node.cpp msgid "MeshLibrary.." -msgstr "" +msgstr "MeshLibrary .." #: tools/editor/editor_node.cpp msgid "TileSet.." -msgstr "" +msgstr "TileSet .." #: tools/editor/editor_node.cpp tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp @@ -2193,29 +2282,28 @@ msgid "Redo" msgstr "Geri" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Run Script" msgstr "Betiği Çalıştır" #: tools/editor/editor_node.cpp msgid "Project Settings" -msgstr "Proje Ayarları" +msgstr "Tasarı Ayarları" #: tools/editor/editor_node.cpp msgid "Revert Scene" -msgstr "" +msgstr "Sahneyi Eski Durumuna Çevir" #: tools/editor/editor_node.cpp msgid "Quit to Project List" -msgstr "Proje Listesine Git" +msgstr "Tasarı Dizelgesine Git" #: tools/editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "" +msgstr "Dikkat Dağıtmayan Biçim" #: tools/editor/editor_node.cpp msgid "Import assets to the project." -msgstr "" +msgstr "Varlıkları tasarının içine aktar." #: tools/editor/editor_node.cpp #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp @@ -2231,7 +2319,7 @@ msgstr "İçe Aktar" #: tools/editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." -msgstr "" +msgstr "Türlü tasarı ya da sahne genişliğinde araçlar." #: tools/editor/editor_node.cpp msgid "Tools" @@ -2239,7 +2327,7 @@ msgstr "Araçlar" #: tools/editor/editor_node.cpp msgid "Export the project to many platforms." -msgstr "" +msgstr "Tasarıyı pek çok ortama aktarın." #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Export" @@ -2247,7 +2335,7 @@ msgstr "Dışa Aktar" #: tools/editor/editor_node.cpp msgid "Play the project." -msgstr "Projeyi oynat." +msgstr "Tasarıyı oynat." #: tools/editor/editor_node.cpp #: tools/editor/plugins/sample_library_editor_plugin.cpp @@ -2281,29 +2369,31 @@ msgstr "Sahneyi Oynat" #: tools/editor/editor_node.cpp msgid "Play custom scene" -msgstr "" +msgstr "Özel sahneyi oynat" #: tools/editor/editor_node.cpp msgid "Play Custom Scene" -msgstr "" +msgstr "Özel Sahneyi Oynat" #: tools/editor/editor_node.cpp msgid "Debug options" -msgstr "" +msgstr "Sorun ayıklama seçenekleri" #: tools/editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "" +msgstr "Uzaktan Sorun Ayıklama ile Dağıt" #: tools/editor/editor_node.cpp msgid "" "When exporting or deploying, the resulting executable will attempt to " "connect to the IP of this computer in order to be debugged." msgstr "" +"Verilen yürütülebilir dizeç, dışa aktarılırken veya dağıtıldığında, sorun " +"ayıklanacak şekilde bu bilgisayarın IP'sine bağlanmaya çalışacaktır." #: tools/editor/editor_node.cpp msgid "Small Deploy with Network FS" -msgstr "" +msgstr "Ağ DS'li Küçük Dağıtım" #: tools/editor/editor_node.cpp msgid "" @@ -2314,30 +2404,39 @@ msgid "" "On Android, deploy will use the USB cable for faster performance. This " "option speeds up testing for games with a large footprint." msgstr "" +"Bu seçenek etkinleştirildiğinde, dışa aktarma veya dağıtma çok küçük bir " +"çalıştırılabilir dizeç üretir.\n" +"Dizeç düzeni, ağ üzerindeki düzenleyici tarafından tasarıdan sağlanacaktır.\n" +"Android'de daha hızlı verim için dağıtım uygulaması USB kablosunu " +"kullanacak. Bu seçenek, ayak izi büyük olan oyunları denemeyi hızlandırır." #: tools/editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "" +msgstr "Görünür Çarpışma Şekilleri" #: tools/editor/editor_node.cpp msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." msgstr "" +"Bu seçenek açıksa, çalışan oyunda çarpışma şekilleri ve raycast düğümleri " +"(2B ve 3B için) görünür olacaktır." #: tools/editor/editor_node.cpp msgid "Visible Navigation" -msgstr "" +msgstr "Görünür Yönlendirici" #: tools/editor/editor_node.cpp msgid "" "Navigation meshes and polygons will be visible on the running game if this " "option is turned on." msgstr "" +"Bu seçenek açıksa, çalışan oyunda yönlendirici örüntüleri ve çokgenler " +"görünür olacaktır." #: tools/editor/editor_node.cpp msgid "Sync Scene Changes" -msgstr "" +msgstr "Sahne Değişikliklerini Eşzamanla" #: tools/editor/editor_node.cpp msgid "" @@ -2346,10 +2445,14 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"Bu seçenek etkinleştirildiğinde, düzenleyicide bulunan sahnedeki " +"değişiklikler çalışmakta olan oyununda çoğaltılır.\n" +"Bir cihazda uzaktan kullanıldığında, ağ dizeç düzeni ile bu işlem daha " +"verimli olur." #: tools/editor/editor_node.cpp msgid "Sync Script Changes" -msgstr "" +msgstr "Betik Değişikliklerini Eşzamanla" #: tools/editor/editor_node.cpp msgid "" @@ -2358,6 +2461,10 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"Bu seçenek etkinleştirildiğinde, kaydedilen tüm betik çalışan oyunda yeniden " +"yüklenecektir.\n" +"Bir cihazda uzaktan kullanıldığında, ağ dizeç düzeni ile bu işlem daha " +"verimli olur." #: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp msgid "Settings" @@ -2365,31 +2472,31 @@ msgstr "Ayarlar" #: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp msgid "Editor Settings" -msgstr "Editör Ayarları" +msgstr "Düzenleyici Ayarları" #: tools/editor/editor_node.cpp msgid "Editor Layout" -msgstr "Editör Düzeni" +msgstr "Düzenleyici Tasarımı" #: tools/editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "" +msgstr "Tam Ekran Aç / Kapat" #: tools/editor/editor_node.cpp msgid "Install Export Templates" -msgstr "" +msgstr "Dışa Aktarım Kalıplarını Yükle" #: tools/editor/editor_node.cpp msgid "About" -msgstr "Hakkında" +msgstr "İlişkin" #: tools/editor/editor_node.cpp msgid "Alerts when an external resource has changed." -msgstr "Harici kaynaklar da değişme olursa uyarır." +msgstr "Dış kaynaklar değişince uyarır." #: tools/editor/editor_node.cpp msgid "Spins when the editor window repaints!" -msgstr "" +msgstr "Düzenleyici penceresi yeniden boyandığında döndürülür!" #: tools/editor/editor_node.cpp msgid "Update Always" @@ -2397,43 +2504,43 @@ msgstr "Sürekli Güncelle" #: tools/editor/editor_node.cpp msgid "Update Changes" -msgstr "" +msgstr "Değişiklikleri güncelle" #: tools/editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "Güncelleme Topacını Devre Dışı Bırak" #: tools/editor/editor_node.cpp msgid "Inspector" -msgstr "" +msgstr "Denetçi" #: tools/editor/editor_node.cpp msgid "Create a new resource in memory and edit it." -msgstr "" +msgstr "Bellekte yeni bir kaynak oluşturun ve onu düzenleyin." #: tools/editor/editor_node.cpp msgid "Load an existing resource from disk and edit it." -msgstr "" +msgstr "Var olan bir kaynağı saklaktan yükleyin ve düzenleyin." #: tools/editor/editor_node.cpp msgid "Save the currently edited resource." -msgstr "" +msgstr "Düzenlenen kaynağı kaydedin." #: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp msgid "Save As.." -msgstr "Farklı Kaydet.." +msgstr "Başkaca Kaydet.." #: tools/editor/editor_node.cpp msgid "Go to the previous edited object in history." -msgstr "" +msgstr "Geçmişte bir önceki düzenlenmiş nesneye gidin." #: tools/editor/editor_node.cpp msgid "Go to the next edited object in history." -msgstr "" +msgstr "Geçmişte bir sonraki düzenlenmiş nesneye gidin." #: tools/editor/editor_node.cpp msgid "History of recently edited objects." -msgstr "" +msgstr "En son düzenlenen nesnelerin geçmişi." #: tools/editor/editor_node.cpp msgid "Object properties." @@ -2441,63 +2548,63 @@ msgstr "Nesne özellikleri." #: tools/editor/editor_node.cpp msgid "FileSystem" -msgstr "" +msgstr "DizeçDüzeni" #: tools/editor/editor_node.cpp tools/editor/node_dock.cpp msgid "Node" -msgstr "" +msgstr "Düğüm" #: tools/editor/editor_node.cpp msgid "Output" -msgstr "" +msgstr "Çıktı" #: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp msgid "Re-Import" -msgstr "" +msgstr "Yeniden İçe Aktar" #: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp msgid "Update" -msgstr "" +msgstr "Güncelle" #: tools/editor/editor_node.cpp msgid "Thanks from the Godot community!" -msgstr "Godot Topluluğu Teşekkürler Eder!" +msgstr "Godot Topluluğu Sağ Olmanızı Diliyor!" #: tools/editor/editor_node.cpp msgid "Thanks!" -msgstr "Teşekkürler!" +msgstr "Sağ olun!" #: tools/editor/editor_node.cpp msgid "Import Templates From ZIP File" -msgstr "" +msgstr "Kalıpları ZIP Dizecinden İçe Aktar" #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Export Project" -msgstr "" +msgstr "Tasarıyı Dışa Aktar" #: tools/editor/editor_node.cpp msgid "Export Library" -msgstr "" +msgstr "Betikevini Dışa Aktar" #: tools/editor/editor_node.cpp msgid "Merge With Existing" -msgstr "" +msgstr "Var Olanla Birleştir" #: tools/editor/editor_node.cpp tools/editor/project_export.cpp msgid "Password:" -msgstr "Şifre:" +msgstr "Gizyazı:" #: tools/editor/editor_node.cpp msgid "Open & Run a Script" -msgstr "" +msgstr "Aç & Bir Betik Çalıştır" #: tools/editor/editor_node.cpp msgid "Load Errors" -msgstr "" +msgstr "Sorunları Yükle" #: tools/editor/editor_plugin_settings.cpp msgid "Installed Plugins:" -msgstr "" +msgstr "Yüklü Eklentiler:" #: tools/editor/editor_plugin_settings.cpp msgid "Version:" @@ -2513,47 +2620,47 @@ msgstr "Durum:" #: tools/editor/editor_profiler.cpp msgid "Stop Profiling" -msgstr "" +msgstr "Kesitlemeyi Durdur" #: tools/editor/editor_profiler.cpp msgid "Start Profiling" -msgstr "" +msgstr "Kesitlemeyi Başlat" #: tools/editor/editor_profiler.cpp msgid "Measure:" -msgstr "" +msgstr "Ölçüm:" #: tools/editor/editor_profiler.cpp msgid "Frame Time (sec)" -msgstr "" +msgstr "Kare Zamanı (sn)" #: tools/editor/editor_profiler.cpp msgid "Average Time (sec)" -msgstr "" +msgstr "Ortalama Zaman (sn)" #: tools/editor/editor_profiler.cpp msgid "Frame %" -msgstr "" +msgstr "Kare %" #: tools/editor/editor_profiler.cpp msgid "Fixed Frame %" -msgstr "" +msgstr "Sabit Kare %" #: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp msgid "Time:" -msgstr "" +msgstr "Süre:" #: tools/editor/editor_profiler.cpp msgid "Inclusive" -msgstr "" +msgstr "Kapsayıcı" #: tools/editor/editor_profiler.cpp msgid "Self" -msgstr "" +msgstr "Kendi" #: tools/editor/editor_profiler.cpp msgid "Frame #:" -msgstr "" +msgstr "Kare #:" #: tools/editor/editor_reimport_dialog.cpp msgid "Please wait for scan to complete." @@ -2561,7 +2668,7 @@ msgstr "Tarama için bitmesini bekleyin." #: tools/editor/editor_reimport_dialog.cpp msgid "Current scene must be saved to re-import." -msgstr "Yeniden içe aktarmak için şimdiki sahneyi kaydet." +msgstr "Yeniden içe aktarmak için şu anki sahneyi kaydet." #: tools/editor/editor_reimport_dialog.cpp msgid "Save & Re-Import" @@ -2573,19 +2680,19 @@ msgstr "Değiştirilmiş Kaynakları Yeniden İçe Aktar" #: tools/editor/editor_run_script.cpp msgid "Write your logic in the _run() method." -msgstr "" +msgstr "Mantığını _run() yöntemine yaz." #: tools/editor/editor_run_script.cpp msgid "There is an edited scene already." -msgstr "" +msgstr "Düzenlenmiş bir sahne zaten var." #: tools/editor/editor_run_script.cpp msgid "Couldn't instance script:" -msgstr "" +msgstr "Betik dizeci alınamadı:" #: tools/editor/editor_run_script.cpp msgid "Did you forget the 'tool' keyword?" -msgstr "" +msgstr "'araç' anahtar sözcüğünü unuttunuz mu?" #: tools/editor/editor_run_script.cpp msgid "Couldn't run script:" @@ -2593,11 +2700,11 @@ msgstr "Betik çalıştırılamadı:" #: tools/editor/editor_run_script.cpp msgid "Did you forget the '_run' method?" -msgstr "" +msgstr "'_run()' yöntemini unuttunuz mu?" #: tools/editor/editor_settings.cpp msgid "Default (Same as Editor)" -msgstr "" +msgstr "Önyüklü(Düzenleyici ile aynı)" #: tools/editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" @@ -2614,33 +2721,34 @@ msgstr "Düğümden İçe Aktar:" #: tools/editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" +"file_type_cache.cch yazma için açılamıyor! Dizeç türü önbelleğe " +"kaydedilmiyor!" #: tools/editor/filesystem_dock.cpp msgid "Same source and destination files, doing nothing." -msgstr "Aynı dosya kaynağı ve hedefi, bir şey yapılmayacak." +msgstr "Özdeş kaynak ve varış dizeçleri, hiçbir şey yapılmıyor." #: tools/editor/filesystem_dock.cpp msgid "Same source and destination paths, doing nothing." -msgstr "" +msgstr "Özdeş kaynak ve varış yolları, hiçbir şey yapılmıyor." #: tools/editor/filesystem_dock.cpp msgid "Can't move directories to within themselves." -msgstr "" +msgstr "Dizinleri kendi içlerine taşıyamazsınız." #: tools/editor/filesystem_dock.cpp msgid "Can't operate on '..'" -msgstr "" +msgstr "'..' üzerinde çalışılamıyor" #: tools/editor/filesystem_dock.cpp msgid "Pick New Name and Location For:" -msgstr "" +msgstr "Şunun için yeni ad ile konum seçin:" #: tools/editor/filesystem_dock.cpp msgid "No files selected!" -msgstr "Hiçbir Dosya Seçilmedi!" +msgstr "Hiçbir Dizeç Seçilmedi!" #: tools/editor/filesystem_dock.cpp -#, fuzzy msgid "Instance" msgstr "Örnek" @@ -2654,11 +2762,11 @@ msgstr "Sahipleri Görüntüle.." #: tools/editor/filesystem_dock.cpp msgid "Copy Path" -msgstr "Dosya Yolunu Kopyala" +msgstr "Dizeç Yolunu Tıpkıla" #: tools/editor/filesystem_dock.cpp msgid "Rename or Move.." -msgstr "İsim Değiştir veya Taşı.." +msgstr "Yeniden Adlandır ya da Taşı.." #: tools/editor/filesystem_dock.cpp msgid "Move To.." @@ -2670,15 +2778,15 @@ msgstr "Bilgi" #: tools/editor/filesystem_dock.cpp msgid "Show In File Manager" -msgstr "Dosya Yöneticisinde Göster" +msgstr "Dizeç Yöneticisinde Göster" #: tools/editor/filesystem_dock.cpp msgid "Re-Import.." -msgstr "" +msgstr "Yeniden İçe Aktar.." #: tools/editor/filesystem_dock.cpp msgid "Previous Directory" -msgstr "" +msgstr "Önceki Dizin" #: tools/editor/filesystem_dock.cpp msgid "Next Directory" @@ -2686,15 +2794,15 @@ msgstr "Sıradaki Dizin" #: tools/editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" -msgstr "Dosya Sistemini Tekrar Tara" +msgstr "Dizeç Düzenini Yeniden Tara" #: tools/editor/filesystem_dock.cpp msgid "Toggle folder status as Favorite" -msgstr "" +msgstr "Dizin Durumlarını Beğenilen Olarak Aç/Kapat" #: tools/editor/filesystem_dock.cpp msgid "Instance the selected scene(s) as child of the selected node." -msgstr "" +msgstr "Seçilen sahneyi/sahneleri seçilen düğüme çocuk olarak örneklendir." #: tools/editor/filesystem_dock.cpp msgid "Move" @@ -2702,51 +2810,51 @@ msgstr "Taşı" #: tools/editor/groups_editor.cpp msgid "Add to Group" -msgstr "Gruba Ekle" +msgstr "Öbeğe Ekle" #: tools/editor/groups_editor.cpp msgid "Remove from Group" -msgstr "Gruptan Kaldır" +msgstr "Öbekten Kaldır" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp msgid "No bit masks to import!" -msgstr "" +msgstr "Alınacak hiç bit örteci yok!" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Target path is empty." -msgstr "Hedef dosya yolu boş." +msgstr "Amaçlanan dizeç yolu boş." #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Target path must be a complete resource path." -msgstr "" +msgstr "Amaçlanan yol, tam bir kaynak yolu olmalıdır." #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Target path must exist." -msgstr "Hedef dosya yolu mevcut olmalı." +msgstr "Amaçlanan dizeç yolu var olmalı." #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Save path is empty!" -msgstr "" +msgstr "Kayıt yolu boş!" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp msgid "Import BitMasks" -msgstr "" +msgstr "BitMasks İçe Aktar" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Source Texture(s):" -msgstr "" +msgstr "Kaynak Doku(lar):" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp @@ -2754,8 +2862,9 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" -msgstr "Hedef Dosya Yolu :" +msgstr "Amaçlanan Dizeç Yolu :" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp #: tools/editor/io_plugins/editor_font_import_plugin.cpp @@ -2768,672 +2877,684 @@ msgstr "Kabul" #: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp msgid "Bit Mask" -msgstr "" +msgstr "Bit Örteci" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "No source font file!" -msgstr "" +msgstr "Kaynak yazı türü dizeci yok!" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "No target font resource!" -msgstr "" +msgstr "Amaçlanan yazı türü kaynağı yok!" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "" "Invalid file extension.\n" "Please use .fnt." msgstr "" +"Geçersiz dizeç uzantısı.\n" +"Lütfen .fnt uzantısını kullanın." #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Can't load/process source font." -msgstr "" +msgstr "Kaynak yazı tipi yüklenemiyor / işlenemiyor." #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Couldn't save font." -msgstr "" +msgstr "Yazı türü kaydedilemedi." #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Source Font:" -msgstr "" +msgstr "Yazı Türü Kaynağı:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Source Font Size:" -msgstr "" +msgstr "Kaynak Yazı Türü Boyutu:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Dest Resource:" -msgstr "" +msgstr "Varış Kaynağı:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "The quick brown fox jumps over the lazy dog." -msgstr "" +msgstr "Hızlı kahverengi tilki üşengeç köpeğin üstünden atlar." #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Test:" -msgstr "" +msgstr "Deneme:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp #: tools/editor/io_plugins/editor_sample_import_plugin.cpp #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Options:" -msgstr "" +msgstr "Seçenekler:" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Font Import" -msgstr "" +msgstr "Yazı Türü İçe Aktar" #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "" "This file is already a Godot font file, please supply a BMFont type file " "instead." msgstr "" +"Bu dizeç zaten bir Godot yazı türü dizecidir , lütfen bunun yerine bir " +"BMFont türü dizeci sağlayın." #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Failed opening as BMFont file." -msgstr "" +msgstr "BMFont dizeci olarak açma başarısız oldu." #: tools/editor/io_plugins/editor_font_import_plugin.cpp msgid "Invalid font custom source." -msgstr "" +msgstr "Geçersiz yazı türü özel kaynağı." #: tools/editor/io_plugins/editor_font_import_plugin.cpp #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Font" -msgstr "" +msgstr "Yazı Tipi" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "No meshes to import!" -msgstr "" +msgstr "İçe aktarılacak örüntü yok!" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "Single Mesh Import" -msgstr "" +msgstr "Tekil Örüntü İçe Aktar" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "Source Mesh(es):" -msgstr "" +msgstr "Kaynak Örüntü(leri):" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh" -msgstr "" +msgstr "Örüntü" #: tools/editor/io_plugins/editor_mesh_import_plugin.cpp msgid "Surface %d" -msgstr "" +msgstr "Yüzey %d" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "No samples to import!" -msgstr "" +msgstr "Alınacak örnek yok!" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Import Audio Samples" -msgstr "" +msgstr "Ses Örneklerini İçe Aktar" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Source Sample(s):" -msgstr "" +msgstr "Kaynak Örnek(leri):" #: tools/editor/io_plugins/editor_sample_import_plugin.cpp msgid "Audio Sample" -msgstr "" +msgstr "Ses Örneği" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "New Clip" -msgstr "" +msgstr "Yeni Parça" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Animation Options" -msgstr "" +msgstr "Canlandırma Seçenekleri" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Flags" -msgstr "" +msgstr "Bayraklar" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Bake FPS:" -msgstr "" +msgstr "FPS'i Pişir:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Optimizer" -msgstr "" +msgstr "İyileştirici" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Max Linear Error" -msgstr "" +msgstr "En üst Doğrusal Sorun" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Max Angular Error" -msgstr "" +msgstr "En üst Açısal Sorun" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Max Angle" -msgstr "" +msgstr "En üst Açı" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Clips" -msgstr "" +msgstr "Parçalar" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Start(s)" -msgstr "" +msgstr "Başlangıç(lar)" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "End(s)" -msgstr "" +msgstr "Son(lar)" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Loop" -msgstr "" +msgstr "Döngü" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Filters" -msgstr "" +msgstr "Süzgeçler" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Source path is empty." -msgstr "" +msgstr "Kaynak yol boş." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Couldn't load post-import script." -msgstr "" +msgstr "İçe aktarma sonrası betik dizeci yüklenemedi." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Invalid/broken script for post-import." -msgstr "" +msgstr "İçe aktarma sonrası için geçersiz/bozuk betik dizeci." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Error importing scene." -msgstr "" +msgstr "İçe aktarırken sorun oluştu." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import 3D Scene" -msgstr "" +msgstr "3B Sahneyi İçe Aktar" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Source Scene:" -msgstr "" +msgstr "Kaynak Sahne:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Same as Target Scene" -msgstr "" +msgstr "Hedef Sahne ile Aynı" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Shared" -msgstr "" +msgstr "Paylaşılan" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Target Texture Folder:" -msgstr "" +msgstr "Amaçlanan Doku Dizini:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Post-Process Script:" -msgstr "" +msgstr "İşlem Sonrası Betik Dizeci:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Custom Root Node Type:" -msgstr "" +msgstr "Özel Kök Düğüm Türü:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Auto" -msgstr "" +msgstr "Kendiliğinden" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "Kök Düğüm adı:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" -msgstr "" +msgstr "Aşağıdaki Dizeçler Eksik:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import Anyway" -msgstr "" +msgstr "Yine de İçe Aktar" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import & Open" -msgstr "" +msgstr "İçe Aktar & Aç" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Edited scene has not been saved, open imported scene anyway?" -msgstr "" +msgstr "Düzenlenen sahne kaydedilmedi, yine de içe aktarılan sahne açılsın mı?" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Import Scene" -msgstr "" +msgstr "Sahneyi İçe Aktar" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Importing Scene.." -msgstr "" +msgstr "Sahneyi İçe Aktarıyor..." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Running Custom Script.." -msgstr "" +msgstr "Çalışan Özel Betik.." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Couldn't load post-import script:" -msgstr "" +msgstr "İçe aktarma sonrası betik dizeci yüklenemedi:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Invalid/broken script for post-import (check console):" msgstr "" +"İçe aktarma işlemi sonrası için geçersiz/bozuk betik dizeci (konsolu " +"denetleyin):" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Error running post-import script:" -msgstr "" +msgstr "İçe aktarma sonrası betik dizeci çalıştırılırken sorun oluştu:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Import Image:" -msgstr "" +msgstr "Bedizi İçe Aktar:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Can't import a file over itself:" -msgstr "" +msgstr "Bir dizeç kendisi üzerine içe aktaramıyor:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Couldn't localize path: %s (already local)" -msgstr "" +msgstr "Yol yerelleştirilemedi: %s (zaten yerel)" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "Saving.." -msgstr "" +msgstr "Kaydediliyor..." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "3D Scene Animation" -msgstr "" +msgstr "3B Sahne Canlandırması" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Uncompressed" -msgstr "" +msgstr "Sıkıştırılmamış" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Compress Lossless (PNG)" -msgstr "" +msgstr "Kayıpsız Sıkıştırma (PNG)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Compress Lossy (WebP)" -msgstr "" +msgstr "Kayıplı Sıkıştırma (WebP)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Compress (VRAM)" -msgstr "" +msgstr "Sıkıştır (VRAM)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture Format" -msgstr "" +msgstr "Doku Biçemi" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture Compression Quality (WebP):" -msgstr "" +msgstr "Doku Sıkıştırma Niteliği (WebP):" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture Options" -msgstr "" +msgstr "Doku Seçenekleri" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Please specify some files!" -msgstr "" +msgstr "Lütfen bazı dizeçleri belirtin!" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "At least one file needed for Atlas." -msgstr "" +msgstr "Atlas için en az bir dizeç gerekli." #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Error importing:" -msgstr "" +msgstr "İçe aktarırken sorun:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Only one file is required for large texture." -msgstr "" +msgstr "Büyük doku için yalnızca bir dizeç gereklidir." #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Max Texture Size:" -msgstr "" +msgstr "En üst Doku Boyutu:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures for Atlas (2D)" -msgstr "" +msgstr "Dokuları Atlas(2B) için içe aktar" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Cell Size:" -msgstr "" +msgstr "Odacık Boyutu:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Large Texture" -msgstr "" +msgstr "Geniş Doku" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Large Textures (2D)" -msgstr "" +msgstr "Büyük Boyutlu(2D) Dokuları İçe Aktar" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Source Texture" -msgstr "" +msgstr "Kaynak Doku" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Base Atlas Texture" -msgstr "" +msgstr "Temel Atlas Doku" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Source Texture(s)" -msgstr "" +msgstr "Kaynak Doku(lar)" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures for 2D" -msgstr "" +msgstr "2B için Dokuları İçe Aktar" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures for 3D" -msgstr "" +msgstr "3B için Dokuları İçe Aktar" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Textures" -msgstr "" +msgstr "Dokuları İçe Aktar" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "2D Texture" -msgstr "" +msgstr "2B Doku" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "3D Texture" -msgstr "" +msgstr "3B Doku" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Atlas Texture" -msgstr "" +msgstr "Atlas Doku" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "" "NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files to " "the project." msgstr "" +"UYARI: 2B dokuların içe aktarılması zorunlu değildir. Png / jpg dizeçlerini " +"tasarıya tıpkılamanız yeterlidir." #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Crop empty space." -msgstr "" +msgstr "Boş alanı kırp." #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Texture" -msgstr "" +msgstr "Doku" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Import Large Texture" -msgstr "" +msgstr "Büyük Dokuyu İçe Aktar" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Load Source Image" -msgstr "" +msgstr "Kaynak Bedizi Yükle" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Slicing" -msgstr "" +msgstr "Dilimleme" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Inserting" -msgstr "" +msgstr "Girdileme" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Saving" -msgstr "" +msgstr "Kaydediyor" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't save large texture:" -msgstr "" +msgstr "Büyük doku kaydedilemedi:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Build Atlas For:" -msgstr "" +msgstr "Atlası Şunun için Oluştur:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Loading Image:" -msgstr "" +msgstr "Bediz Yükleniyor:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't load image:" -msgstr "" +msgstr "Bediz yüklenemedi:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Converting Images" -msgstr "" +msgstr "Bedizleri Dönüştürüyor" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Cropping Images" -msgstr "" +msgstr "Bedizleri Kırpıyor" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Blitting Images" -msgstr "" +msgstr "Bedizleri Blitle" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't save atlas image:" -msgstr "" +msgstr "Atlas bedizi kaydedilemedi:" #: tools/editor/io_plugins/editor_texture_import_plugin.cpp msgid "Couldn't save converted texture:" -msgstr "" +msgstr "Dönüştürülmüş doku kaydedilemedi:" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Invalid source!" -msgstr "" +msgstr "Geçersiz kaynak!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Invalid translation source!" -msgstr "" +msgstr "Geçersiz çeviri kaynağı!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Column" -msgstr "" +msgstr "Dikeç" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp #: tools/editor/script_create_dialog.cpp msgid "Language" -msgstr "" +msgstr "Dil" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "No items to import!" -msgstr "" +msgstr "Alınacak öğe yok!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "No target path!" -msgstr "" +msgstr "Amaçlanan yol yok!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Import Translations" -msgstr "" +msgstr "Çevirileri İçe Aktar" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Couldn't import!" -msgstr "" +msgstr "Alınamadı!" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Import Translation" -msgstr "" +msgstr "Çeviriyi İçe Aktar" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Source CSV:" -msgstr "" +msgstr "Kaynak CSV:" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Ignore First Row" -msgstr "" +msgstr "İlk Sırayı Yoksay" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Compress" -msgstr "" +msgstr "Sıkıştır" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Add to Project (engine.cfg)" -msgstr "" +msgstr "Tasarıya Ekle (engine.cfg)" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Import Languages:" -msgstr "" +msgstr "Dilleri İçe Aktar:" #: tools/editor/io_plugins/editor_translation_import_plugin.cpp msgid "Translation" -msgstr "" +msgstr "Çeviri" #: tools/editor/multi_node_edit.cpp msgid "MultiNode Set" -msgstr "" +msgstr "MultiNode Kur" #: tools/editor/node_dock.cpp msgid "Groups" -msgstr "" +msgstr "Öbekler" #: tools/editor/node_dock.cpp msgid "Select a Node to edit Signals and Groups." -msgstr "" +msgstr "İşaretleri ve Öbekleri düzenlemek için bir Düğüm seçin." #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "" +msgstr "KendindenOynatmayı Aç/Kapat" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "" +msgstr "Yeni Canlandırma Adı:" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "Yeni Animasyon" +msgstr "Yeni Canlandırma" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "Animasyonun adını değiştir:" +msgstr "Canlandırmanın Adını Değiştir:" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Remove Animation" -msgstr "Animasyonu Kaldır" +msgstr "Canlandırmayı Kaldır" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: Invalid animation name!" -msgstr "HATA: Geçersiz animasyon adı!" +msgstr "SORUN: Geçersiz canlandırma adı!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: Animation name already exists!" -msgstr "HATA: Bu animasyonun adı zaten var!" +msgstr "SORUN: Bu canlandırma adı zaten var!" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Rename Animation" -msgstr "Animasyonu Yeniden İsimlendir" +msgstr "Canlandırmayı Yeniden Adlandır" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Animation" -msgstr "Animasyon Ekle" +msgstr "Canlandırma Ekle" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" -msgstr "" +msgstr "Sonraki Değişeni Karıştır" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Change Blend Time" -msgstr "" +msgstr "Karışım Süresini Değiştir" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Load Animation" -msgstr "Animasyon Yükle" +msgstr "Canlandırma Yükle" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" -msgstr "Animasyonu Yeniden Çıkar" +msgstr "Canlandırmayı İkile" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation to copy!" -msgstr "HATA: Kopyalamak için bir animasyon yok!" +msgstr "SORUN: Tıpkılamak için bir canlandırma yok!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation resource on clipboard!" -msgstr "" +msgstr "SORUN: Bellemde canlandırma kaynağı yok!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" -msgstr "" +msgstr "Yapıştırılan Canlandırma" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Paste Animation" -msgstr "" +msgstr "Canlandırmayı Yapıştır" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation to edit!" -msgstr "HATA: Düzenlemek için bir animasyon yok!" +msgstr "SORUN: Düzenlemek için bir canlandırma yok!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" -msgstr "" +msgstr "Seçilen canlandırmayı geçerli konumdan geriye doğru oynat. (A)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from end. (Shift+A)" -msgstr "" +msgstr "Seçilen canlandırmayı geriye doğru oynat. (Shift + A)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Stop animation playback. (S)" -msgstr "" +msgstr "Canlandırmayı oynatmayı durdur. (S)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from start. (Shift+D)" -msgstr "" +msgstr "Seçilen canlandırmayı başlangıç anından oynat. (ÜstKrkt + D)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from current pos. (D)" -msgstr "" +msgstr "Seçilen calandırmayı geçerli konumdan oynat. (D)" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Animation position (in seconds)." -msgstr "" +msgstr "Canlandırma konumu (saniye olarak)." #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Scale animation playback globally for the node." -msgstr "" +msgstr "Düğüm için canlandırma arka oynatmasını ölçeklendir." #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Create new animation in player." -msgstr "" +msgstr "Oynatıcıda yeni canlandırma oluşturun." #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Load animation from disk." -msgstr "" +msgstr "Canlandırmayı saklaktan yükle." #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Load an animation from disk." -msgstr "" +msgstr "Bir canlandırmayı saklaktan yükle." #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Save the current animation" -msgstr "" +msgstr "Geçerli canlandırmayı kaydet" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Save As" -msgstr "" +msgstr "Başkaca Kaydet" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Display list of animations in player." -msgstr "" +msgstr "Oyuncudaki canlandırmaların dizelgesini görüntüle." #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Autoplay on Load" -msgstr "" +msgstr "Yükleme sırasında KendindenOynat" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Target Blend Times" -msgstr "" +msgstr "Amaçlanan Karışma Zamanlarını Düzenle" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" -msgstr "" +msgstr "Canlandırma Araçları" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Copy Animation" -msgstr "" +msgstr "Canlandırmayı Tıpkıla" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Create New Animation" -msgstr "" +msgstr "Yeni Canlandırma Oluştur" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" -msgstr "" +msgstr "Canlandırma Adı:" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/resource_preloader_editor_plugin.cpp @@ -3441,307 +3562,307 @@ msgstr "" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp #: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Error!" -msgstr "" +msgstr "Sorun!" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Times:" -msgstr "" +msgstr "Süreleri Karıştır:" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Next (Auto Queue):" -msgstr "" +msgstr "Sonraki (Kendiliğinden Kuyruğu):" #: tools/editor/plugins/animation_player_editor_plugin.cpp msgid "Cross-Animation Blend Times" -msgstr "" +msgstr "Çapraz Canlandırma Karışma Süreleri" #: tools/editor/plugins/animation_player_editor_plugin.cpp #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Animation" -msgstr "" +msgstr "Canlandırma" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "New name:" -msgstr "" +msgstr "Yeni ad:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Scale:" -msgstr "" +msgstr "Ölçekle:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Fade In (s):" -msgstr "" +msgstr "Açılma (sn):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Fade Out (s):" -msgstr "" +msgstr "Karartma (sn):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend" -msgstr "" +msgstr "Karıştır" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Mix" -msgstr "" +msgstr "Çırp" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Auto Restart:" -msgstr "" +msgstr "Kendiliğinden Yeniden Başlat:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Restart (s):" -msgstr "" +msgstr "Yeniden Başlat (sn):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Random Restart (s):" -msgstr "" +msgstr "Rastgele Yeniden Başlama (sn):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Start!" -msgstr "" +msgstr "Başlat!" #: tools/editor/plugins/animation_tree_editor_plugin.cpp #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Amount:" -msgstr "" +msgstr "Değer:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend:" -msgstr "" +msgstr "Karışma:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend 0:" -msgstr "" +msgstr "Karışma 0:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend 1:" -msgstr "" +msgstr "Karışma 1:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "X-Fade Time (s):" -msgstr "" +msgstr "X-Sönülme Süresi (sn):" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Current:" -msgstr "" +msgstr "Geçerli:" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Add Input" -msgstr "" +msgstr "Giriş Ekle" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Clear Auto-Advance" -msgstr "" +msgstr "Kendiliğinden İlerlemeyi Temizle" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Set Auto-Advance" -msgstr "" +msgstr "Kendiliğinden İlerlemeyi Ayarla" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Delete Input" -msgstr "" +msgstr "Girişi Sil" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Rename" -msgstr "" +msgstr "Yeniden Adlandır" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation tree is valid." -msgstr "" +msgstr "Canlandırma ağacı geçerlidir." #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation tree is invalid." -msgstr "" +msgstr "Canlandırma ağacı geçersizdir." #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation Node" -msgstr "" +msgstr "Canlandırma Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "OneShot Node" -msgstr "" +msgstr "OneShot Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Mix Node" -msgstr "" +msgstr "Düğümü Çırp" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend2 Node" -msgstr "" +msgstr "Karıştır2 Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend3 Node" -msgstr "" +msgstr "Karıştır3 Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend4 Node" -msgstr "" +msgstr "Karıştır4 Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "TimeScale Node" -msgstr "" +msgstr "TimeScale Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "TimeSeek Node" -msgstr "" +msgstr "TimeSeek Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Transition Node" -msgstr "" +msgstr "Geçiş Düğümü" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Import Animations.." -msgstr "" +msgstr "Canlandırmaları İçe Aktar.." #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Edit Node Filters" -msgstr "" +msgstr "Düğüm Süzgeçlerini Düzenle" #: tools/editor/plugins/animation_tree_editor_plugin.cpp msgid "Filters.." -msgstr "" +msgstr "Süzgeçler..." #: tools/editor/plugins/baked_light_baker.cpp msgid "Parsing %d Triangles:" -msgstr "" +msgstr "%d Üçgenlerini Ayrıştırma:" #: tools/editor/plugins/baked_light_baker.cpp msgid "Triangle #" -msgstr "" +msgstr "Üçgen #" #: tools/editor/plugins/baked_light_baker.cpp msgid "Light Baker Setup:" -msgstr "" +msgstr "Işık Pişirici Kurulumu:" #: tools/editor/plugins/baked_light_baker.cpp msgid "Parsing Geometry" -msgstr "" +msgstr "Uzambilgisini Ayrıştırıyor" #: tools/editor/plugins/baked_light_baker.cpp msgid "Fixing Lights" -msgstr "" +msgstr "Işıkları Sabitliyor" #: tools/editor/plugins/baked_light_baker.cpp msgid "Making BVH" -msgstr "" +msgstr "BVH Yapıyor" #: tools/editor/plugins/baked_light_baker.cpp msgid "Creating Light Octree" -msgstr "" +msgstr "Işık Sekağacı Oluşturuyor" #: tools/editor/plugins/baked_light_baker.cpp msgid "Creating Octree Texture" -msgstr "" +msgstr "Sekağaç Dokusu Oluşturuyor" #: tools/editor/plugins/baked_light_baker.cpp msgid "Transfer to Lightmaps:" -msgstr "" +msgstr "Işık Haritalarına Aktar:" #: tools/editor/plugins/baked_light_baker.cpp msgid "Allocating Texture #" -msgstr "" +msgstr "Doku Paylaşımı #" #: tools/editor/plugins/baked_light_baker.cpp msgid "Baking Triangle #" -msgstr "" +msgstr "Pişirme Üçgeni #" #: tools/editor/plugins/baked_light_baker.cpp msgid "Post-Processing Texture #" -msgstr "" +msgstr "İşleme-Sonrası Dokusu #" #: tools/editor/plugins/baked_light_editor_plugin.cpp msgid "Bake!" -msgstr "" +msgstr "Pişir!" #: tools/editor/plugins/baked_light_editor_plugin.cpp msgid "Reset the lightmap octree baking process (start over)." -msgstr "" +msgstr "Işık haritası sekağacı pişirme işlemini sıfırlayın (baştan başlayın)." #: tools/editor/plugins/camera_editor_plugin.cpp #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Preview" -msgstr "" +msgstr "Önizleme" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" -msgstr "" +msgstr "Yapışmayı Yapılandır" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset:" -msgstr "" +msgstr "Izgarayı Kaydır:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Step:" -msgstr "" +msgstr "Izgara Adımı:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Offset:" -msgstr "" +msgstr "Dönme Kayması:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Step:" -msgstr "" +msgstr "Dönme Adımı:" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Pivot" -msgstr "" +msgstr "Ekseni Taşı" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Action" -msgstr "" +msgstr "Eylemi Taşı" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" -msgstr "" +msgstr "IK Zincirini Düzenle" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit CanvasItem" -msgstr "" +msgstr "CanvasItem Düzenle" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" -msgstr "" +msgstr "Çapaları Değiştir" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom (%):" -msgstr "" +msgstr "Yaklaş (%):" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" -msgstr "" +msgstr "Duruşu Yapıştır" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Select Mode" -msgstr "Bir Düğüm Seç" +msgstr "Biçim Seç" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" -msgstr "" +msgstr "Sürükle: Döndürür" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+Drag: Move" -msgstr "" +msgstr "Alt+Sürükle: Taşır" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." msgstr "" +"Ekseni Değiştirmek için 'v' dokunacına basın, Ekseni Sürüklemek için " +"(sürüklerken) 'Shift + v' dokunaçlarına basın." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+RMB: Depth list selection" -msgstr "" +msgstr "Alt + RMB: Derin dizelge seçimi" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move Mode" -msgstr "Şuraya Taşı.." +msgstr "Biçimi Taşı" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotate Mode" -msgstr "" +msgstr "Döndürme Biçimi" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp @@ -3749,61 +3870,63 @@ msgid "" "Show a list of all objects at the position clicked\n" "(same as Alt+RMB in select mode)." msgstr "" +"Tıklanan konumdaki tüm nesnelerin bir dizelgesini gösterin\n" +"(Seçme biçiminde Alt + RMB ile özdeş)." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Click to change object's rotation pivot." -msgstr "" +msgstr "Nesnenin dönüş eksenini değiştirmek için tıklayın." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan Mode" -msgstr "" +msgstr "Kaydırma Biçimi" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." -msgstr "" +msgstr "Seçilen nesneyi yerine kilitleyin (taşınamaz)." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." -msgstr "" +msgstr "Seçilen nesnenin kilidini açın (taşınabilir)." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." -msgstr "" +msgstr "Nesnenin çocuğunun seçilemez olduğundan kuşkusuz olur." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." -msgstr "" +msgstr "Nesnenin çocuğunun seçilebilme yeteneğini geri kazandırır." #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Use Snap" -msgstr "" +msgstr "Yapışma Kullan" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Show Grid" -msgstr "" +msgstr "Izgarayı Göster" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" -msgstr "" +msgstr "Döndürme Yapışması Kullan" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" -msgstr "" +msgstr "Göreceli Yapış" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Configure Snap.." -msgstr "" +msgstr "Yapışmayı Yapılandır.." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Pixel Snap" -msgstr "" +msgstr "Nokta Yapışması Kullan" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Expand to Parent" -msgstr "" +msgstr "Ataya genişletin" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton.." @@ -3811,83 +3934,128 @@ msgstr "İskelet.." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Bones" -msgstr "" +msgstr "Kemik Yap" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Bones" -msgstr "" +msgstr "Kemikleri Temizle" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" -msgstr "" +msgstr "Kemikleri Göster" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" -msgstr "" +msgstr "IK Zinciri Yap" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear IK Chain" -msgstr "" +msgstr "IK Zincirini Temizle" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "" +msgstr "Görüş" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom Reset" -msgstr "Yakınlaştırmayı Sıfırla" +msgstr "Yakınlaşmayı Sıfırla" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom Set.." -msgstr "Yakınlaştırmayı Ayarla.." +msgstr "Yakınlaşmayı Ayarla.." #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" -msgstr "" +msgstr "İçre Seçimi" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "" +msgstr "Kafes Seçimi" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchor" -msgstr "" +msgstr "Çapa" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Keys" -msgstr "" +msgstr "Açarlar Gir" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "Açar Gir" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" -msgstr "" +msgstr "Açar Gir (Var Olan İzler)" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Copy Pose" -msgstr "" +msgstr "Duruşu Tıpkıla" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Pose" -msgstr "" +msgstr "Duruşu Temizle" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Set a Value" -msgstr "Değeri Ata" +msgstr "Bir Değer Ata" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap (Pixels):" +msgstr "Yapış (Noktalara):" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "Ekle %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "Ekliyor %s.." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Düğüm Oluştur" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "%s sahne örnekleme sorunu" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "Tamam :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "Çocuğun örnek alacağı bir ata yok." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Bu işlem, seçilmiş tek bir düğüm gerektirir." + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "Önyüklü tipi değiştir" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" msgstr "" +"Sürükle & bırak + Shift: Kardeş olarak düğüm ekle\n" +"Sürükle & bırak + Alt: Düğüm türünü değiştir" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create Poly" -msgstr "" +msgstr "Çoklu Oluşturun" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/collision_polygon_editor_plugin.cpp @@ -3896,7 +4064,7 @@ msgstr "" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Edit Poly" -msgstr "" +msgstr "Çokluyu Düzenleyin" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/collision_polygon_editor_plugin.cpp @@ -3905,2561 +4073,2595 @@ msgstr "" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Edit Poly (Remove Point)" -msgstr "" +msgstr "Çokluyu Düzenleyin (Noktayı Silin)" #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create a new polygon from scratch." -msgstr "" +msgstr "Sıfırdan yeni bir çokgen oluşturun." #: tools/editor/plugins/collision_polygon_editor_plugin.cpp msgid "Create Poly3D" -msgstr "" +msgstr "Çoklu3B Oluştur" #: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" -msgstr "" +msgstr "Tutamacı Ayarla" #: tools/editor/plugins/color_ramp_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" -msgstr "" +msgstr "Renk Yokuşu Noktası Ekle / Kaldır" #: tools/editor/plugins/color_ramp_editor_plugin.cpp #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Modify Color Ramp" -msgstr "" +msgstr "Renk Yokuşunu Değiştir" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Creating Mesh Library" -msgstr "" +msgstr "Örüntü Betikevi Oluştur" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Thumbnail.." -msgstr "" +msgstr "Küçük Bediz.." #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Remove item %d?" -msgstr "" +msgstr "%d öğe kaldırılsın mı?" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Add Item" -msgstr "" +msgstr "Öğe Ekle" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Remove Selected Item" -msgstr "" +msgstr "Seçilen Öğeyi Kaldır" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Import from Scene" -msgstr "" +msgstr "Sahneden İçe Aktar" #: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Update from Scene" -msgstr "" +msgstr "Sahneden Güncelle" #: tools/editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" -msgstr "" +msgstr "Öğe%d" #: tools/editor/plugins/item_list_editor_plugin.cpp msgid "Items" -msgstr "" +msgstr "Öğeler" #: tools/editor/plugins/item_list_editor_plugin.cpp msgid "Item List Editor" -msgstr "" +msgstr "Öğe Dizelgesi Düzenleyicisi" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" -msgstr "" +msgstr "Engelleyici Çokgeni Oluştur" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Edit existing polygon:" -msgstr "" +msgstr "Var olan çokgeni düzenleyin:" #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "LMB: Move Point." -msgstr "" +msgstr "LMB: Taşıma Noktası." #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Ctrl+LMB: Split Segment." -msgstr "" +msgstr "Ctrl + LMB: Parçayı Böl." #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "RMB: Erase Point." -msgstr "" +msgstr "RMB: Noktayı Sil." #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" -msgstr "" +msgstr "Örüntü boş!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" -msgstr "" +msgstr "Durağan Üçlü Örüntü Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Convex Body" -msgstr "" +msgstr "Durağan Dışbükey Gövde Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "This doesn't work on scene root!" -msgstr "" +msgstr "Bu, sahne kökünde çalışmaz!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Shape" -msgstr "" +msgstr "Üçlü Örüntü Yüzeyi Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Shape" -msgstr "" +msgstr "Dışbükey Şekil Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" -msgstr "" +msgstr "Yönlendirici Örüntüsü Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" -msgstr "" +msgstr "MeshInstance herhangi bir Örüntüden yoksun!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh has not surface to create outlines from!" -msgstr "" +msgstr "Örüntü anahat oluşturmak için bir yüzeye sahip değil!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Could not create outline!" -msgstr "" +msgstr "Anahat oluşturulamadı!" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline" -msgstr "" +msgstr "Anahat Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" -msgstr "" +msgstr "Üçlü Örüntü Durağan Gövdesi Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Static Body" -msgstr "" +msgstr "Dışbükey Durağan Gövde Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" -msgstr "" +msgstr "Üçlü Örüntü Çarpışma Kardeşi Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Collision Sibling" -msgstr "" +msgstr "Dışbükey Çarpışma Kardeşi Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh.." -msgstr "" +msgstr "Anahat Örüntüsü Oluştur.." #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh" -msgstr "" +msgstr "Anahat Örüntüsü Oluştur" #: tools/editor/plugins/mesh_instance_editor_plugin.cpp msgid "Outline Size:" -msgstr "" +msgstr "Anahat Ölçüsü:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." -msgstr "" +msgstr "Örüntü kaynağı belirtilmedi (düğümde MultiMesh yok)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and MultiMesh contains no Mesh)." -msgstr "" +msgstr "Hiçbir örüntü kaynağı belirtilmedi (ve MultiMesh, Örüntü içermiyor)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (invalid path)." -msgstr "" +msgstr "Örüntü kaynağı geçersiz (geçersiz yol)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (not a MeshInstance)." -msgstr "" +msgstr "Örüntü kaynağı geçersiz (bir MeshInstance değil)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (contains no Mesh resource)." -msgstr "" +msgstr "Örüntü kaynağı geçersiz (Örüntü kaynağı içermiyor)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "No surface source specified." -msgstr "" +msgstr "Yüzey kaynağı belirtilmedi." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (invalid path)." -msgstr "" +msgstr "Yüzey kaynağı geçersiz (geçersiz yol)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no geometry)." -msgstr "" +msgstr "Yüzey kaynağı geçersiz (uzambilgisi yok)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no faces)." -msgstr "" +msgstr "Yüzey kaynağı geçersiz (yüzler yok)." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Parent has no solid faces to populate." -msgstr "" +msgstr "Atanın doldurmak için eksiksiz yüzleri yok." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Couldn't map area." -msgstr "" +msgstr "Alan eşleştirilemedi." #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Source Mesh:" -msgstr "" +msgstr "Bir Kaynak Örüntü Seçin:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Target Surface:" -msgstr "" +msgstr "Bir Amaçlanan Yüzeyi Seçin:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Populate Surface" -msgstr "" +msgstr "Yüzeyi Doldur" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Populate MultiMesh" -msgstr "" +msgstr "MultiMesh'i Doldur" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Target Surface:" -msgstr "" +msgstr "Amaçlanan Yüzey:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Source Mesh:" -msgstr "" +msgstr "Kaynak Örüntü:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "X-Axis" -msgstr "" +msgstr "X-Ekseni" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Y-Axis" -msgstr "" +msgstr "Y-Ekseni" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Z-Axis" -msgstr "" +msgstr "Z-Ekseni" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh Up Axis:" -msgstr "" +msgstr "Örüntü Üst Ekseni:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Random Rotation:" -msgstr "" +msgstr "Rastgele Döndürme:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Random Tilt:" -msgstr "" +msgstr "Rastgele Eğilme:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Random Scale:" -msgstr "" +msgstr "Rastgele Ölçek:" #: tools/editor/plugins/multimesh_editor_plugin.cpp msgid "Populate" -msgstr "" +msgstr "Doldur" #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create Navigation Polygon" -msgstr "" +msgstr "Yönlendirici Çokgeni Oluştur" #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Remove Poly And Point" -msgstr "" +msgstr "Çokluyu ve Noktayı Kaldır" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Error loading image:" -msgstr "" +msgstr "Bediz yüklenirken sorun oluştu:" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "No pixels with transparency > 128 in image.." -msgstr "" +msgstr "Saydamlığı olan nokta yok > 128 bedizde.." #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Set Emission Mask" -msgstr "" +msgstr "Yayma Örtecini Ayarla" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Clear Emission Mask" -msgstr "" +msgstr "Yayma Örtecini Temizle" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Load Emission Mask" -msgstr "" +msgstr "Yayma Örtecini Yükle" #: tools/editor/plugins/particles_2d_editor_plugin.cpp msgid "Generated Point Count:" -msgstr "" +msgstr "Üretilen Nokta Say:" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry." -msgstr "" +msgstr "Düğüm uzambilgisi içermiyor." #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry (faces)." -msgstr "" +msgstr "Düğüm uzambilgisi (yüzler) içermiyor." #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Faces contain no area!" -msgstr "" +msgstr "Yüzler alan içermez!" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "No faces!" -msgstr "" +msgstr "Yüzler yok!" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Generate AABB" -msgstr "" +msgstr "AABB Üret" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter From Mesh" -msgstr "" +msgstr "Örüntüden Yayıcı Oluştur" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter From Node" -msgstr "" +msgstr "Düğümden Yayıcı Oluştur" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Clear Emitter" -msgstr "" +msgstr "Yayıcıyı Temizle" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter" -msgstr "" +msgstr "Yayıcı Oluştur" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Emission Positions:" -msgstr "" +msgstr "Yayma Konumları:" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Emission Fill:" -msgstr "" +msgstr "Yayma Dolumu:" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Surface" -msgstr "" +msgstr "Yüzey" #: tools/editor/plugins/particles_editor_plugin.cpp msgid "Volume" -msgstr "" +msgstr "Oylum" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" -msgstr "" +msgstr "Noktayı Eğriden Kaldır" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Add Point to Curve" -msgstr "" +msgstr "Noktayı Eğriye Ekle" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" -msgstr "" +msgstr "Noktayı Eğriye Taşı" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Move In-Control in Curve" -msgstr "" +msgstr "Eğriye Denetimli Taşı" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Move Out-Control in Curve" -msgstr "" +msgstr "Eğriye Denetimsiz Taşı" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Select Points" -msgstr "" +msgstr "Noktaları Seç" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Shift+Drag: Select Control Points" -msgstr "" +msgstr "Shift + Sürükle: Denetim Noktalarını Seç" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Click: Add Point" -msgstr "" +msgstr "Tıkla: Nokta Ekle" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" -msgstr "" +msgstr "Sağ tıkla: Nokta Sil" #: tools/editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" -msgstr "" +msgstr "Denetim Noktalarını Seç (Shift + Sürükle)" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Add Point (in empty space)" -msgstr "" +msgstr "Nokta Ekle (boşlukta)" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" -msgstr "" +msgstr "Parçayı Ayır (eğriye göre)" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Delete Point" -msgstr "" +msgstr "Noktayı Sil" #: tools/editor/plugins/path_2d_editor_plugin.cpp #: tools/editor/plugins/path_editor_plugin.cpp msgid "Close Curve" -msgstr "" +msgstr "Eğriyi Kapat" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Curve Point #" -msgstr "" +msgstr "Eğrisel Nokta #" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Set Curve Point Pos" -msgstr "" +msgstr "Eğri Noktası Konumu Ayarla" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Set Curve In Pos" -msgstr "" +msgstr "Eğriyi Konumda Ayarla" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Set Curve Out Pos" -msgstr "" +msgstr "Eğri Çıkış Konumunu Ayarla" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Split Path" -msgstr "" +msgstr "Yolu Ayır" #: tools/editor/plugins/path_editor_plugin.cpp msgid "Remove Path Point" -msgstr "" +msgstr "Yol Noktasını Kaldır" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" -msgstr "" +msgstr "UV Haritası Oluştur" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform UV Map" -msgstr "" +msgstr "UV Haritasını Dönüştür" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" -msgstr "" +msgstr "Çokgen 2B UV Düzenleyicisi" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Point" -msgstr "" +msgstr "Noktayı Taşı" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" -msgstr "" +msgstr "Ctrl: Döndür" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" -msgstr "" +msgstr "ÜstKrkt: Tümünü Taşı" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift+Ctrl: Scale" -msgstr "" +msgstr "ÜstKrkt+Ctrl: Ölçek" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Polygon" -msgstr "" +msgstr "Çokgeni Taşı" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Rotate Polygon" -msgstr "" +msgstr "Çokgeni Döndür" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Scale Polygon" -msgstr "" +msgstr "Çokgeni Ölçekle" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon->UV" -msgstr "" +msgstr "Çokgen->UV" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV->Polygon" -msgstr "" +msgstr "UV->Çokgen" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Clear UV" -msgstr "" +msgstr "UV yi Temizle" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Snap" -msgstr "" +msgstr "Yapış" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Enable Snap" -msgstr "" +msgstr "Yapışmayı Enkinleştir" #: tools/editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid" -msgstr "" +msgstr "Izgara" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" -msgstr "" +msgstr "SORUN: Kaynak yüklenemedi!" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "Add Resource" -msgstr "" +msgstr "Kaynak Ekle" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "Rename Resource" -msgstr "" +msgstr "Kaynağı Yeniden Adlandır" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Resource" -msgstr "" +msgstr "Kaynağı Sil" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp msgid "Resource clipboard is empty!" -msgstr "" +msgstr "Kaynak bellemi boş!" #: tools/editor/plugins/resource_preloader_editor_plugin.cpp #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" -msgstr "" +msgstr "Kaynak Yükle" #: tools/editor/plugins/rich_text_editor_plugin.cpp msgid "Parse BBCode" -msgstr "" +msgstr "BBCode'u Ayrıştır" #: tools/editor/plugins/sample_editor_plugin.cpp msgid "Length:" -msgstr "" +msgstr "Uzunluk:" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Open Sample File(s)" -msgstr "" +msgstr "Örnek Dizeçleri Aç" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "ERROR: Couldn't load sample!" -msgstr "" +msgstr "SORUN: Örnek yüklenemedi!" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Add Sample" -msgstr "" +msgstr "Örnek Ekle" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Rename Sample" -msgstr "" +msgstr "Örneği Yeniden Addlandır" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Delete Sample" -msgstr "" +msgstr "Örneği Sil" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "16 Bits" -msgstr "" +msgstr "16 bit" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "8 Bits" -msgstr "" +msgstr "8 Bit" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Stereo" -msgstr "" +msgstr "Çiftli" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Mono" -msgstr "" +msgstr "Tekli" #: tools/editor/plugins/sample_library_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Format" -msgstr "" +msgstr "Biçem" #: tools/editor/plugins/sample_library_editor_plugin.cpp msgid "Pitch" -msgstr "" +msgstr "Perde" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error while saving theme" -msgstr "" +msgstr "Kalıp kaydedilirken sorun oluştu" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error saving" -msgstr "" +msgstr "Kaydetme sorunu" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error importing theme" -msgstr "" +msgstr "Kalıp içe aktarılırken sorun oluştu" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Error importing" -msgstr "" +msgstr "İçe aktarma sorunu" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Import Theme" -msgstr "" +msgstr "Kalıbı İçe Aktar" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save Theme As.." -msgstr "" +msgstr "Kalıbı Başkaca Kaydet.." #: tools/editor/plugins/script_editor_plugin.cpp msgid "Next script" -msgstr "" +msgstr "Sonraki betik" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Previous script" -msgstr "" +msgstr "Önceki betik" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/project_export.cpp msgid "File" -msgstr "" +msgstr "Dizeç" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/property_editor.cpp msgid "New" -msgstr "" +msgstr "Yeni" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save All" -msgstr "" +msgstr "Tümünü kaydet" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" -msgstr "" +msgstr "Betiği Yeniden Duyarlı Yükle" #: tools/editor/plugins/script_editor_plugin.cpp msgid "History Prev" -msgstr "" +msgstr "Öceki Geçmiş" #: tools/editor/plugins/script_editor_plugin.cpp msgid "History Next" -msgstr "" +msgstr "Sonraki Geçmiş" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" -msgstr "" +msgstr "Kalıbı Yeniden Yükle" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save Theme" -msgstr "" +msgstr "Kalıbı Kaydet" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Save Theme As" -msgstr "" +msgstr "Kalıbı Başkaca Kaydet" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close Docs" -msgstr "Kapat" +msgstr "Belgeleri Kapat" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "Kapat" +msgstr "Tümünü Kapat" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Find.." -msgstr "" +msgstr "Bul.." #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Find Next" -msgstr "" +msgstr "Sonraki Bul" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Debug" -msgstr "" +msgstr "Kusur Ayıkla" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Step Over" -msgstr "" +msgstr "Adımla" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Step Into" -msgstr "" +msgstr "İçeri Adımla" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Break" -msgstr "" +msgstr "Ara Ver" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Continue" -msgstr "" +msgstr "Devam Et" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" -msgstr "" +msgstr "Kusurayıkları Açık Tut" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Window" -msgstr "" +msgstr "Pencere" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Move Left" -msgstr "" +msgstr "Sola Taşı" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Move Right" -msgstr "" +msgstr "Sağa Taşı" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Tutorials" -msgstr "" +msgstr "Öğreticiler" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Open https://godotengine.org at tutorials section." -msgstr "" +msgstr "https://godotengine.org bağlantısını öğreticiler bölümünde aç." #: tools/editor/plugins/script_editor_plugin.cpp msgid "Classes" -msgstr "" +msgstr "Bölütler" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Search the class hierarchy." -msgstr "" +msgstr "Bölüt sıradüzenini Ara." #: tools/editor/plugins/script_editor_plugin.cpp msgid "Search the reference documentation." -msgstr "" +msgstr "Başvuru belgelerinde arama yap." #: tools/editor/plugins/script_editor_plugin.cpp msgid "Go to previous edited document." -msgstr "" +msgstr "Daha önce düzenlenmiş belgeye git." #: tools/editor/plugins/script_editor_plugin.cpp msgid "Go to next edited document." -msgstr "" +msgstr "Düzenlenmiş bir sonraki belgeye git." #: tools/editor/plugins/script_editor_plugin.cpp msgid "Create Script" -msgstr "" +msgstr "Betik Oluştur" #: tools/editor/plugins/script_editor_plugin.cpp msgid "" "The following files are newer on disk.\n" "What action should be taken?:" msgstr "" +"Aşağıdaki dizeçler saklakta daha yeni.\n" +"Hangi eylem yapılsın?:" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Reload" -msgstr "" +msgstr "Yeniden Yükle" #: tools/editor/plugins/script_editor_plugin.cpp msgid "Resave" -msgstr "" +msgstr "Yeniden Kaydet" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Debugger" -msgstr "" +msgstr "Kusurayıklar" #: tools/editor/plugins/script_editor_plugin.cpp msgid "" "Built-in scripts can only be edited when the scene they belong to is loaded" msgstr "" +"Gömülü betik dizeçleri yalnızca ait oldukları sahne yüklendiğinde " +"düzenlenebilirler" #: tools/editor/plugins/script_text_editor.cpp msgid "Pick Color" -msgstr "" +msgstr "Renk Seç" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" -msgstr "" +msgstr "Yukarı Taşı" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Down" -msgstr "" +msgstr "Aşağı Taşı" #: tools/editor/plugins/script_text_editor.cpp msgid "Indent Left" -msgstr "" +msgstr "Sola Girintile" #: tools/editor/plugins/script_text_editor.cpp msgid "Indent Right" -msgstr "" +msgstr "Sağa Girintile" #: tools/editor/plugins/script_text_editor.cpp msgid "Toggle Comment" -msgstr "" +msgstr "Yorumu Aç / Kapat" #: tools/editor/plugins/script_text_editor.cpp msgid "Clone Down" -msgstr "" +msgstr "Aşağıya Eşle" #: tools/editor/plugins/script_text_editor.cpp msgid "Complete Symbol" -msgstr "" +msgstr "Simgeyi Tamamla" #: tools/editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" -msgstr "" +msgstr "İzleyenin Boşluklarını Kırp" #: tools/editor/plugins/script_text_editor.cpp msgid "Auto Indent" -msgstr "" +msgstr "Kendinden Girintili" #: tools/editor/plugins/script_text_editor.cpp msgid "Remove All Breakpoints" -msgstr "" +msgstr "Tüm Kesme Noktalarını Kaldır" #: tools/editor/plugins/script_text_editor.cpp msgid "Goto Next Breakpoint" -msgstr "" +msgstr "Sonraki Kesme Noktasına Git" #: tools/editor/plugins/script_text_editor.cpp msgid "Goto Previous Breakpoint" -msgstr "" +msgstr "Önceki Kesme Noktasına Git" #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" -msgstr "" +msgstr "Öncekini Bul" #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Replace.." -msgstr "" +msgstr "Değiştir.." #: tools/editor/plugins/script_text_editor.cpp msgid "Goto Function.." -msgstr "" +msgstr "İşleve Git.." #: tools/editor/plugins/script_text_editor.cpp #: tools/editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." -msgstr "" +msgstr "Dizeye Git.." #: tools/editor/plugins/script_text_editor.cpp msgid "Contextual Help" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" +msgstr "Bağlamsal Yardım" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" -msgstr "" +msgstr "Basamaklı Sabiti Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Constant" -msgstr "" +msgstr "Vec Sabitini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Constant" -msgstr "" +msgstr "RGB Sabitini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Operator" -msgstr "" +msgstr "Basamaklı İşletmeni Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Operator" -msgstr "" +msgstr "Vec İşletmenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Scalar Operator" -msgstr "" +msgstr "Vec Basamaklı İşletmeni Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Operator" -msgstr "" +msgstr "RGB İşletmenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Toggle Rot Only" -msgstr "" +msgstr "Yalnız Döndürmeye Geçiş Yap" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Function" -msgstr "" +msgstr "Basamaklı İşlevi Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Function" -msgstr "" +msgstr "Vec İşlevini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Uniform" -msgstr "" +msgstr "Basamaklı Tekdüzenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Uniform" -msgstr "" +msgstr "Vec Tekdüzenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Uniform" -msgstr "" +msgstr "RGB Tekdüzenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Default Value" -msgstr "" +msgstr "Önyüklü Değeri Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change XForm Uniform" -msgstr "" +msgstr "XForm Tekdüzenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Texture Uniform" -msgstr "" +msgstr "Doku Tekdüzenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Cubemap Uniform" -msgstr "" +msgstr "Küp Eşleşme Tekdüzenini Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Comment" -msgstr "" +msgstr "Yorumu Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Add/Remove to Color Ramp" -msgstr "" +msgstr "Renk Yokuşuna Ekle / Kaldır" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Add/Remove to Curve Map" -msgstr "" +msgstr "Eğri Haritası Ekle / Kaldır" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Modify Curve Map" -msgstr "" +msgstr "Eğri Haritasını Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Input Name" -msgstr "" +msgstr "Giriş Adını Değiştir" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Connect Graph Nodes" -msgstr "" +msgstr "Çizge Düğümlerini Bağla" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Disconnect Graph Nodes" -msgstr "" +msgstr "Çizge Düğümlerinin Bağlantılarını Kes" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Remove Shader Graph Node" -msgstr "" +msgstr "Gölgelendirici Çizge Düğümünü Kaldır" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Move Shader Graph Node" -msgstr "" +msgstr "Gölgelendirici Çizge Düğümünü Taşı" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Duplicate Graph Node(s)" -msgstr "" +msgstr "Çizge Düğüm(lerini) İkile" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Delete Shader Graph Node(s)" -msgstr "" +msgstr "Gölgelendirici Çizge Düğümünü Sil" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Error: Cyclic Connection Link" -msgstr "" +msgstr "Sorun: Döngüsel İlişki Bağlantısı" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Error: Missing Input Connections" -msgstr "" +msgstr "Sorun: Giriş Bağlantıları Eksik" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Add Shader Graph Node" -msgstr "" +msgstr "Gölgelendirici Çizge Düğümü Ekle" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" -msgstr "" +msgstr "Dikey" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Perspective" -msgstr "" +msgstr "Derinlik" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Aborted." -msgstr "" +msgstr "Dönüşüm Durduruldu." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "X-Axis Transform." -msgstr "" +msgstr "X-Ekseni Dönüşümü." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Y-Axis Transform." -msgstr "" +msgstr "Y-Eksen Dönüşümü." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Z-Axis Transform." -msgstr "" +msgstr "Z-Eksen Dönüşümü." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Plane Transform." -msgstr "" +msgstr "Düzlem Dönüşümünü Görüntüle." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scaling to %s%%." -msgstr "" +msgstr "Şuna %s%% Ölçeklendiriliyor." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." -msgstr "" +msgstr "%s Düzey Dönüyor." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View." -msgstr "" +msgstr "Alttan Görünüm." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Bottom" -msgstr "" +msgstr "Alt" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Top View." -msgstr "" +msgstr "Üstten Görünüm." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Top" -msgstr "" +msgstr "Üst" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rear View." -msgstr "" +msgstr "Arkadan Görünüm." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rear" -msgstr "" +msgstr "Arka" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Front View." -msgstr "" +msgstr "Önden Görünüm." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Front" -msgstr "" +msgstr "Ön" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Left View." -msgstr "" +msgstr "Soldan Görünüm." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Left" -msgstr "" +msgstr "Sol" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Right View." -msgstr "" +msgstr "Sağdan Görünüm." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Right" -msgstr "" +msgstr "Sağ" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Keying is disabled (no key inserted)." -msgstr "" +msgstr "Açar ekleme devre dışı (eklenmiş açar yok)." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Animation Key Inserted." -msgstr "" +msgstr "Canlandırma Açarı Eklendi." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" -msgstr "" +msgstr "Görünüme Ayarla" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Environment" -msgstr "" +msgstr "Çevre" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" -msgstr "" +msgstr "Ses Dinleyici" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Gizmos" -msgstr "" +msgstr "Zımbırtılar" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" -msgstr "" +msgstr "XForm İletişim Kutusu" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "No scene selected to instance!" -msgstr "" +msgstr "Örnek vermek için hiçbir sahne seçilmedi!" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Instance at Cursor" -msgstr "" +msgstr "Göstergede Örnekle" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Could not instance scene!" -msgstr "" +msgstr "Sahne Örneklenemedi!" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Move Mode (W)" -msgstr "" +msgstr "Taşıma Biçimi (W)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Mode (E)" -msgstr "" +msgstr "Döndürme Biçimi (E)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scale Mode (R)" -msgstr "" +msgstr "Ölçek Biçimi (R)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" -msgstr "" +msgstr "Alttan Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Top View" -msgstr "" +msgstr "Üstten Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rear View" -msgstr "" +msgstr "Arkadan Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Front View" -msgstr "" +msgstr "Önden Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Left View" -msgstr "" +msgstr "Soldan Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Right View" -msgstr "" +msgstr "Sağdan Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Switch Perspective/Orthogonal view" -msgstr "" +msgstr "Derinlik / Dikey Görünüme Değiştir" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Insert Animation Key" -msgstr "" +msgstr "Canlandırma Açarı Ekle" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Origin" -msgstr "" +msgstr "Başlatıma Odaklan" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Focus Selection" -msgstr "" +msgstr "Seçime Odaklan" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Align Selection With View" -msgstr "" +msgstr "Seçimi Görünüme Ayarla" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform" -msgstr "" +msgstr "Dönüşüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Local Coords" -msgstr "" +msgstr "Yerel Konaçlar" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog.." -msgstr "" +msgstr "Dönüştürme İletişim Kutusu.." #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Use Default Light" -msgstr "" +msgstr "Önyüklü Işık Kullan" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Use Default sRGB" -msgstr "" +msgstr "Önyüklü sRGB'yi Kullan" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "1 Viewport" -msgstr "" +msgstr "1 Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports" -msgstr "" +msgstr "2 Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports (Alt)" -msgstr "" +msgstr "2 Görünüm (Alt)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports" -msgstr "" +msgstr "3 Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports (Alt)" -msgstr "" +msgstr "3 Görünüm (Alt)" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "4 Viewports" -msgstr "" +msgstr "4 Görünüm" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Normal" -msgstr "" +msgstr "Olağanı Görüntüle" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Wireframe" -msgstr "" +msgstr "Telkafes Görüntüle" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Overdraw" -msgstr "" +msgstr "Abartı Görüntüle" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Display Shadeless" -msgstr "" +msgstr "Gölgesiz Görüntüle" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Origin" -msgstr "" +msgstr "Başlatım Görünümü" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Grid" -msgstr "" +msgstr "Izgara Görünümü" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" -msgstr "" +msgstr "Yapışma Ayarları" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "" +msgstr "Yapışmayı Çevir:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "" +msgstr "Yapışmayı Döndür (düzey):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" -msgstr "" +msgstr "Yapışmayı Ölçekle (%):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" -msgstr "" +msgstr "Görüntüleme Ayarları" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Default Light Normal:" -msgstr "" +msgstr "Önyüklü Işığın Olağanı:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Ambient Light Color:" -msgstr "" +msgstr "Ortam Işığı Rengi:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Perspective FOV (deg.):" -msgstr "" +msgstr "Perspektif FOV (düzey):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Near:" -msgstr "" +msgstr "Z-Yakını Göster:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Far:" -msgstr "" +msgstr "Z-Uzağı Görüntüle:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Change" -msgstr "" +msgstr "Dönüşümü Değiştir" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Translate:" -msgstr "" +msgstr "Çevir:" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Rotate (deg.):" -msgstr "" +msgstr "Döndür (düzey):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Scale (ratio):" -msgstr "" +msgstr "Ölçek (oran):" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Transform Type" -msgstr "" +msgstr "Dönüştürme Türü" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Pre" -msgstr "" +msgstr "Öncesi" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Post" -msgstr "" +msgstr "Sonrası" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "ERROR: Couldn't load frame resource!" -msgstr "" +msgstr "SORUN: Kare kaynağı yüklenemedi!" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" -msgstr "" +msgstr "Çerçeve Ekle" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" -msgstr "" +msgstr "Kaynak bellem boş ya da bu bir doku değil!" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Paste Frame" -msgstr "" +msgstr "Çerçeveyi Yapıştır" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Empty" -msgstr "" +msgstr "Boş Ekle" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "Canlandırma Döngüsünü Değiştir" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation FPS" -msgstr "" +msgstr "Canlandırma FPS'sini Değiştir" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "(empty)" -msgstr "" +msgstr "(boş)" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations" -msgstr "" +msgstr "Canlandırmalar" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" -msgstr "" +msgstr "Hız (FPS):" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animation Frames" -msgstr "" +msgstr "Canlandırma Çerçeveleri" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" -msgstr "" +msgstr "Boş Ekle (Önce)" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (After)" -msgstr "" +msgstr "Boş Ekle (Sonra)" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Up" -msgstr "" +msgstr "Yukarı" #: tools/editor/plugins/sprite_frames_editor_plugin.cpp msgid "Down" -msgstr "" +msgstr "Aşağı" #: tools/editor/plugins/style_box_editor_plugin.cpp msgid "StyleBox Preview:" -msgstr "" +msgstr "StyleBox Önizleme:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" -msgstr "" +msgstr "Yapışma Biçimi:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "<None>" -msgstr "" +msgstr "<Yok>" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "" +msgstr "Nokta Yapışması" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Grid Snap" -msgstr "" +msgstr "Izgara Yapışması" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" -msgstr "" +msgstr "Kendinden Dilimle" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Offset:" -msgstr "" +msgstr "Kaydırma:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Step:" -msgstr "" +msgstr "Adım:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Separation:" -msgstr "" +msgstr "Ayrım:" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Texture Region" -msgstr "" +msgstr "Doku Bölgesi" #: tools/editor/plugins/texture_region_editor_plugin.cpp msgid "Texture Region Editor" -msgstr "" +msgstr "Doku Bölgesi Düzenleyicisi" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Can't save theme to file:" -msgstr "" +msgstr "Kalıbı dizece kaydedemiyoruz:" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add All Items" -msgstr "" +msgstr "Tüm Öğeleri Ekle" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add All" -msgstr "" +msgstr "Tümünü Ekle" #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Item" -msgstr "" +msgstr "Öğeyi Kaldır" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Theme" -msgstr "" +msgstr "Kalıp" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" -msgstr "" +msgstr "Bölüt Öğeleri Ekle" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Remove Class Items" -msgstr "" +msgstr "Bölüt Öğelerini Kaldır" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Create Empty Template" -msgstr "" +msgstr "Boş Kalıp Oluştur" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Create Empty Editor Template" -msgstr "" +msgstr "Boş Düzenleyici Kalıbı Oluştur" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" -msgstr "" +msgstr "OnayKutusu Radyo1" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio2" -msgstr "" +msgstr "OnayKutusu Radyo2" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Item" -msgstr "" +msgstr "Öğe" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Check Item" -msgstr "" +msgstr "Öğeyi Denetle" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Checked Item" -msgstr "" +msgstr "Denetlenen Öğe" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Has" -msgstr "" +msgstr "Var" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Many" -msgstr "" +msgstr "Çok" #: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp msgid "Options" -msgstr "" +msgstr "Seçenekler" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Have,Many,Several,Options!" -msgstr "" +msgstr "Bir Çok,Seçenek,Var!" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" -msgstr "" +msgstr "Sekme 1" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Tab 2" -msgstr "" +msgstr "Sekme 2" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Tab 3" -msgstr "" +msgstr "Sekme 3" #: tools/editor/plugins/theme_editor_plugin.cpp #: tools/editor/project_settings.cpp tools/editor/scene_tree_editor.cpp #: tools/editor/script_editor_debugger.cpp msgid "Type:" -msgstr "" +msgstr "Tür:" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" -msgstr "" +msgstr "Veri Türü:" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Icon" -msgstr "" +msgstr "Simge" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Style" -msgstr "" +msgstr "Yoldam" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Color" -msgstr "" +msgstr "Renk" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" -msgstr "" +msgstr "TileMap'i Boya" #: tools/editor/plugins/tile_map_editor_plugin.cpp #: tools/editor/scene_tree_dock.cpp msgid "Duplicate" -msgstr "" +msgstr "İkile" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Erase TileMap" -msgstr "" +msgstr "TileMap'i Sil" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Erase selection" -msgstr "" +msgstr "Seçimi Sil" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Find tile" -msgstr "" +msgstr "Döşentiyi Bul" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Transpose" -msgstr "" +msgstr "Tersine Çevir" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Mirror X" -msgstr "" +msgstr "X'e Aynala" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Mirror Y" -msgstr "" +msgstr "Y'ye Aynala" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Bucket" -msgstr "" +msgstr "Kova" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" -msgstr "" +msgstr "Karo Seç" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Select" -msgstr "" +msgstr "Seç" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 0 degrees" -msgstr "" +msgstr "0 Düzeyde Döndür" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 90 degrees" -msgstr "" +msgstr "90 Düzeyde Döndür" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 180 degrees" -msgstr "" +msgstr "180 Düzeyde Döndür" #: tools/editor/plugins/tile_map_editor_plugin.cpp msgid "Rotate 270 degrees" -msgstr "" +msgstr "270 Düzeyde Döndür" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Could not find tile:" -msgstr "" +msgstr "Karo Bulunamadı:" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Item name or ID:" -msgstr "" +msgstr "Öğe adı yada kimliği:" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene?" -msgstr "" +msgstr "Sahneden mi oluşturulsun?" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from scene?" -msgstr "" +msgstr "Sahneden birleştirilsin mi?" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" -msgstr "" +msgstr "Sahneden Oluştur" #: tools/editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from Scene" -msgstr "" +msgstr "Sahneden Birleştir" #: tools/editor/plugins/tile_set_editor_plugin.cpp #: tools/editor/script_editor_debugger.cpp msgid "Error" -msgstr "" +msgstr "Sorun" #: tools/editor/project_export.cpp msgid "Edit Script Options" -msgstr "" +msgstr "Betik Seçeneklerini Düzenle" #: tools/editor/project_export.cpp msgid "Please export outside the project folder!" -msgstr "" +msgstr "Lütfen tasarı dizininin dışına aktarın!" #: tools/editor/project_export.cpp msgid "Error exporting project!" -msgstr "" +msgstr "Tasarı gönderilirken sorun oluştu!" #: tools/editor/project_export.cpp msgid "Error writing the project PCK!" -msgstr "" +msgstr "Tasarının PCK'ini yazarken sorun oluştu!" #: tools/editor/project_export.cpp msgid "No exporter for platform '%s' yet." +msgstr "Şu anda '%s' ortamı için dışa aktarıcı yok." + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "Yeni Kaynak Oluştur" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "Uygun ad" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" msgstr "" #: tools/editor/project_export.cpp -msgid "Include" +#, fuzzy +msgid "Organization" +msgstr "Geçiş" + +#: tools/editor/project_export.cpp +msgid "City" msgstr "" #: tools/editor/project_export.cpp -msgid "Change Image Group" +#, fuzzy +msgid "State" +msgstr "Durum:" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" msgstr "" #: tools/editor/project_export.cpp -msgid "Group name can't be empty!" +msgid "User alias" msgstr "" #: tools/editor/project_export.cpp -msgid "Invalid character in group name!" +#, fuzzy +msgid "Password" +msgstr "Gizyazı:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "Geçerli damgalar:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "Yeni ad:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" msgstr "" #: tools/editor/project_export.cpp -msgid "Group name already exists!" +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" msgstr "" #: tools/editor/project_export.cpp -msgid "Add Image Group" +msgid "Fill Keystore/Release User and Release Password" msgstr "" #: tools/editor/project_export.cpp +msgid "Include" +msgstr "Katıştır" + +#: tools/editor/project_export.cpp +msgid "Change Image Group" +msgstr "Bediz Öbeğini Değiştir" + +#: tools/editor/project_export.cpp +msgid "Group name can't be empty!" +msgstr "Öbek adı boş olamaz!" + +#: tools/editor/project_export.cpp +msgid "Invalid character in group name!" +msgstr "Öbek adında geçersiz damga!" + +#: tools/editor/project_export.cpp +msgid "Group name already exists!" +msgstr "Öbek adı zaten var!" + +#: tools/editor/project_export.cpp +msgid "Add Image Group" +msgstr "Bediz Öbeği Ekle" + +#: tools/editor/project_export.cpp msgid "Delete Image Group" -msgstr "" +msgstr "Bediz Öbeğini Sil" #: tools/editor/project_export.cpp msgid "Atlas Preview" -msgstr "" +msgstr "Atlas Önizleme" #: tools/editor/project_export.cpp msgid "Project Export Settings" -msgstr "" +msgstr "Tasarıyı Dışa Aktarma Ayarları" #: tools/editor/project_export.cpp msgid "Target" -msgstr "" +msgstr "Amaç" #: tools/editor/project_export.cpp msgid "Export to Platform" -msgstr "" +msgstr "Ortama Aktar" #: tools/editor/project_export.cpp msgid "Resources" -msgstr "" +msgstr "Kaynaklar" #: tools/editor/project_export.cpp msgid "Export selected resources (including dependencies)." -msgstr "" +msgstr "Seçilen kaynakları dışa aktar (bağımlılıklar dahil)." #: tools/editor/project_export.cpp msgid "Export all resources in the project." -msgstr "" +msgstr "Tasarıdaki tüm kaynakları dışa aktarın." #: tools/editor/project_export.cpp msgid "Export all files in the project directory." -msgstr "" +msgstr "Tasarı dizinindeki tüm dizeçleri dışa aktarın." #: tools/editor/project_export.cpp msgid "Export Mode:" -msgstr "" +msgstr "Dışa Aktarma Biçimi:" #: tools/editor/project_export.cpp msgid "Resources to Export:" -msgstr "" +msgstr "Dışa Aktarılacak Kaynaklar:" #: tools/editor/project_export.cpp msgid "Action" -msgstr "" +msgstr "Eylem" #: tools/editor/project_export.cpp msgid "" "Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):" msgstr "" +"Kaynak olmayan dizeçleri dışa aktarmak için kullanılan süzgeçler (virgülle " +"ayrılmış, ör. * .json, * .txt):" #: tools/editor/project_export.cpp msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):" msgstr "" +"Dışa aktarma işleminden hariç tutulacak süzgeçler (virgülle ayrılmış, ör. * ." +"json, * .txt):" #: tools/editor/project_export.cpp msgid "Convert text scenes to binary on export." -msgstr "" +msgstr "Dışa aktarmada yazı sahnelerini ikili hale getirin." #: tools/editor/project_export.cpp msgid "Images" -msgstr "" +msgstr "Bedizler" #: tools/editor/project_export.cpp msgid "Keep Original" -msgstr "" +msgstr "Özgün Tut" #: tools/editor/project_export.cpp msgid "Compress for Disk (Lossy, WebP)" -msgstr "" +msgstr "Saklak İçin Sıkıştır (Kayıplı, WebP)" #: tools/editor/project_export.cpp msgid "Compress for RAM (BC/PVRTC/ETC)" -msgstr "" +msgstr "RAM için Sıkıştır (BC / PVRTC / ETC)" #: tools/editor/project_export.cpp msgid "Convert Images (*.png):" -msgstr "" +msgstr "Bedizleri Dönüştür (*.png):" #: tools/editor/project_export.cpp msgid "Compress for Disk (Lossy) Quality:" -msgstr "" +msgstr "Saklak İçin Sıkıştır (Kayıplı) Nitelik:" #: tools/editor/project_export.cpp msgid "Shrink All Images:" -msgstr "" +msgstr "Tüm Bedizleri Küçült:" #: tools/editor/project_export.cpp msgid "Compress Formats:" -msgstr "" +msgstr "Sıkıştırma Biçemleri:" #: tools/editor/project_export.cpp msgid "Image Groups" -msgstr "" +msgstr "Bediz Öbekleri" #: tools/editor/project_export.cpp msgid "Groups:" -msgstr "" +msgstr "Öbekler:" #: tools/editor/project_export.cpp msgid "Compress Disk" -msgstr "" +msgstr "Saklağı Sıkıştır" #: tools/editor/project_export.cpp msgid "Compress RAM" -msgstr "" +msgstr "RAM'i Sıkıştır" #: tools/editor/project_export.cpp msgid "Compress Mode:" -msgstr "" +msgstr "Sıkıştırma Biçimi:" #: tools/editor/project_export.cpp msgid "Lossy Quality:" -msgstr "" +msgstr "Kayıplı Nitelik:" #: tools/editor/project_export.cpp msgid "Atlas:" -msgstr "" +msgstr "Atlas :" #: tools/editor/project_export.cpp msgid "Shrink By:" -msgstr "" +msgstr "Küçült:" #: tools/editor/project_export.cpp msgid "Preview Atlas" -msgstr "" +msgstr "Atlası Önizle" #: tools/editor/project_export.cpp msgid "Image Filter:" -msgstr "" +msgstr "Bediz Süzgeci:" #: tools/editor/project_export.cpp msgid "Images:" -msgstr "" +msgstr "Bedizler:" #: tools/editor/project_export.cpp msgid "Select None" -msgstr "" +msgstr "Hiçbir Şey Seçilmedi" #: tools/editor/project_export.cpp msgid "Group" -msgstr "" +msgstr "Öbek" #: tools/editor/project_export.cpp msgid "Samples" -msgstr "" +msgstr "Örnekler" #: tools/editor/project_export.cpp msgid "Sample Conversion Mode: (.wav files):" -msgstr "" +msgstr "Örnek Dönüşüm Biçimi: (.wav dizeçleri):" #: tools/editor/project_export.cpp msgid "Keep" -msgstr "" +msgstr "Tut" #: tools/editor/project_export.cpp msgid "Compress (RAM - IMA-ADPCM)" -msgstr "" +msgstr "Sıkıştır (RAM - IMA-ADPCM)" #: tools/editor/project_export.cpp msgid "Sampling Rate Limit (Hz):" -msgstr "" +msgstr "Örnekleme Oranının Sınırı (Hz):" #: tools/editor/project_export.cpp msgid "Trim" -msgstr "" +msgstr "Buda" #: tools/editor/project_export.cpp msgid "Trailing Silence:" -msgstr "" +msgstr "Sessizliği İzliyor:" #: tools/editor/project_export.cpp msgid "Script" -msgstr "" +msgstr "Betik" #: tools/editor/project_export.cpp msgid "Script Export Mode:" -msgstr "" +msgstr "Betik Dışa Aktarım Biçimi:" #: tools/editor/project_export.cpp msgid "Text" -msgstr "" +msgstr "Yazı" #: tools/editor/project_export.cpp msgid "Compiled" -msgstr "" +msgstr "Derlenmiş" #: tools/editor/project_export.cpp msgid "Encrypted (Provide Key Below)" -msgstr "" +msgstr "Şifreli (Açarı Aşağıda Belirtin)" #: tools/editor/project_export.cpp msgid "Script Encryption Key (256-bits as hex):" -msgstr "" +msgstr "Betik Şifreleme Açarı (Hex olarak 256-bit):" #: tools/editor/project_export.cpp msgid "Export PCK/Zip" -msgstr "" +msgstr "PCK/Zip Dizecini Dışa Aktar" #: tools/editor/project_export.cpp msgid "Export Project PCK" -msgstr "" +msgstr "Tasarı PCK Dışa Aktar" #: tools/editor/project_export.cpp msgid "Export.." -msgstr "" +msgstr "Dışa Aktar.." #: tools/editor/project_export.cpp msgid "Project Export" -msgstr "" +msgstr "Tasarı Dışa Aktar" #: tools/editor/project_export.cpp msgid "Export Preset:" -msgstr "" +msgstr "Ön Ayarları Dışa Aktar:" #: tools/editor/project_manager.cpp msgid "Invalid project path, the path must exist!" -msgstr "" +msgstr "Geçersiz tasarı yolu, yolun var olması gerekir!" #: tools/editor/project_manager.cpp msgid "Invalid project path, engine.cfg must not exist." -msgstr "" +msgstr "Geçersiz tasarı yolu, engine.cfg var olmaması gerekir." #: tools/editor/project_manager.cpp msgid "Invalid project path, engine.cfg must exist." -msgstr "" +msgstr "Geçersiz tasarı yolu, engine.cfg var olması gerekir." #: tools/editor/project_manager.cpp msgid "Imported Project" -msgstr "" +msgstr "İçe Aktarılan Tasarı" #: tools/editor/project_manager.cpp msgid "Invalid project path (changed anything?)." -msgstr "" +msgstr "Geçersiz tasarı yolu (bir şey değişti mi?)." #: tools/editor/project_manager.cpp msgid "Couldn't create engine.cfg in project path." -msgstr "" +msgstr "engine.cfg tasarı yolunda oluşturulamadı." #: tools/editor/project_manager.cpp msgid "The following files failed extraction from package:" -msgstr "" +msgstr "Aşağıdaki dizeçlerin, çıkından ayıklanma işlemi başarısız oldu:" #: tools/editor/project_manager.cpp msgid "Package Installed Successfully!" -msgstr "" +msgstr "Çıkın Başarı ile Kuruldu!" #: tools/editor/project_manager.cpp msgid "Import Existing Project" -msgstr "" +msgstr "Var olan Tasarıyı İçe Aktar" #: tools/editor/project_manager.cpp msgid "Project Path (Must Exist):" -msgstr "" +msgstr "Tasarı Yolu (Var Olması Gerekir):" #: tools/editor/project_manager.cpp msgid "Project Name:" -msgstr "" +msgstr "Tasarı Adı:" #: tools/editor/project_manager.cpp msgid "Create New Project" -msgstr "" +msgstr "Yeni Tasarı Oluştur" #: tools/editor/project_manager.cpp msgid "Project Path:" -msgstr "" +msgstr "Tasarı Yolu:" #: tools/editor/project_manager.cpp msgid "Install Project:" -msgstr "" +msgstr "Tasarıyı Kur:" #: tools/editor/project_manager.cpp msgid "Install" -msgstr "" +msgstr "Kur" #: tools/editor/project_manager.cpp msgid "Browse" -msgstr "" +msgstr "Gözat" #: tools/editor/project_manager.cpp msgid "New Game Project" -msgstr "" +msgstr "Yeni Oyun Tasarısı" #: tools/editor/project_manager.cpp msgid "That's a BINGO!" -msgstr "" +msgstr "Yaşa BE!" #: tools/editor/project_manager.cpp msgid "Unnamed Project" -msgstr "" +msgstr "Adsız Tasarı" #: tools/editor/project_manager.cpp msgid "Are you sure to open more than one project?" -msgstr "" +msgstr "Birden fazla tasarı açmakta kararlı mısınız?" #: tools/editor/project_manager.cpp msgid "Are you sure to run more than one project?" -msgstr "" +msgstr "Birden fazla tasarıyı çalıştırmaya kararlı mısınız?" #: tools/editor/project_manager.cpp msgid "Remove project from the list? (Folder contents will not be modified)" msgstr "" +"Tasarıyı dizelgeden kaldırmak mı istiyorsunuz? (Dizin içeriği değiştirilmez)" #: tools/editor/project_manager.cpp msgid "" "You are about the scan %s folders for existing Godot projects. Do you " "confirm?" msgstr "" +"Var olan Godot tasarıları için %s dizin taraması yapıyorsunuz. Onaylıyor " +"musunuz?" #: tools/editor/project_manager.cpp msgid "Project Manager" -msgstr "" +msgstr "Tasarı Yöneticisi" #: tools/editor/project_manager.cpp msgid "Project List" -msgstr "" +msgstr "Tasarı Dizelgesi" #: tools/editor/project_manager.cpp msgid "Run" -msgstr "" +msgstr "Çalıştır" #: tools/editor/project_manager.cpp msgid "Scan" -msgstr "" +msgstr "Tara" #: tools/editor/project_manager.cpp -#, fuzzy msgid "Select a Folder to Scan" -msgstr "Bir Düğüm Seç" +msgstr "Tarama için bir Dizin Seç" #: tools/editor/project_manager.cpp msgid "New Project" -msgstr "" +msgstr "Yeni Tasarı" #: tools/editor/project_manager.cpp msgid "Exit" -msgstr "" +msgstr "Çık" #: tools/editor/project_settings.cpp msgid "Key " -msgstr "" +msgstr "Dokunaç " #: tools/editor/project_settings.cpp msgid "Joy Button" -msgstr "" +msgstr "Eğlence Düğmesi" #: tools/editor/project_settings.cpp msgid "Joy Axis" -msgstr "" +msgstr "Eğlence Ekseni" #: tools/editor/project_settings.cpp msgid "Mouse Button" -msgstr "" +msgstr "Fare Düğmesi" #: tools/editor/project_settings.cpp msgid "Invalid action (anything goes but '/' or ':')." -msgstr "" +msgstr "Geçersiz işlem (her şey ancak şu '/' ya da şuna ':' gider)." #: tools/editor/project_settings.cpp msgid "Action '%s' already exists!" -msgstr "" +msgstr "İşlem '%s' zaten var!" #: tools/editor/project_settings.cpp msgid "Rename Input Action Event" -msgstr "" +msgstr "Giriş İşlem Olayını Yeniden Adlandır" #: tools/editor/project_settings.cpp msgid "Add Input Action Event" -msgstr "" +msgstr "Giriş İşlem Olayı Ekle" #: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp msgid "Control+" -msgstr "" +msgstr "Denetim+" #: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp msgid "Press a Key.." -msgstr "" +msgstr "Bir Dokunaca Basın.." #: tools/editor/project_settings.cpp msgid "Mouse Button Index:" -msgstr "" +msgstr "Fare Düğme Dizini:" #: tools/editor/project_settings.cpp msgid "Left Button" -msgstr "" +msgstr "Sol Düğme" #: tools/editor/project_settings.cpp msgid "Right Button" -msgstr "" +msgstr "Sağ Düğme" #: tools/editor/project_settings.cpp msgid "Middle Button" -msgstr "" +msgstr "Orta Düğme" #: tools/editor/project_settings.cpp msgid "Wheel Up Button" -msgstr "" +msgstr "Tekerlek Yukarı Düğmesi" #: tools/editor/project_settings.cpp msgid "Wheel Down Button" -msgstr "" +msgstr "Tekerlek Aşağı Düğmesi" #: tools/editor/project_settings.cpp msgid "Button 6" -msgstr "" +msgstr "Düğme 6" #: tools/editor/project_settings.cpp msgid "Button 7" -msgstr "" +msgstr "Düğme 7" #: tools/editor/project_settings.cpp msgid "Button 8" -msgstr "" +msgstr "Düğme 8" #: tools/editor/project_settings.cpp msgid "Button 9" -msgstr "" +msgstr "Düğme 9" #: tools/editor/project_settings.cpp msgid "Joystick Axis Index:" -msgstr "" +msgstr "Oyunçubuğu Ekseni Dizini:" #: tools/editor/project_settings.cpp msgid "Joystick Button Index:" -msgstr "" +msgstr "Oyunçubuğu Düğme Dizini:" #: tools/editor/project_settings.cpp msgid "Add Input Action" -msgstr "" +msgstr "Giriş Eylemi Ekle" #: tools/editor/project_settings.cpp msgid "Erase Input Action Event" -msgstr "" - -#: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" +msgstr "Giriş Eylemi Olayını Sil" #: tools/editor/project_settings.cpp msgid "Error saving settings." -msgstr "" +msgstr "Ayarları kaydetme sorunu." #: tools/editor/project_settings.cpp msgid "Settings saved OK." -msgstr "" +msgstr "Ayarlar kaydedildi TAMAM." #: tools/editor/project_settings.cpp msgid "Add Translation" -msgstr "" +msgstr "Çeviri Ekle" #: tools/editor/project_settings.cpp msgid "Remove Translation" -msgstr "" +msgstr "Çeviriyi Kaldır" #: tools/editor/project_settings.cpp msgid "Add Remapped Path" -msgstr "" +msgstr "Yeniden Eşlenmiş Yol Ekle" #: tools/editor/project_settings.cpp msgid "Resource Remap Add Remap" -msgstr "" +msgstr "Kaynak Yeniden Eşleme Ekle Eşle" #: tools/editor/project_settings.cpp msgid "Change Resource Remap Language" -msgstr "" +msgstr "Kaynak Yeniden Eşleme Dilini Değiştir" #: tools/editor/project_settings.cpp msgid "Remove Resource Remap" -msgstr "" +msgstr "Kaynak Yeniden Eşlemesini Kaldır" #: tools/editor/project_settings.cpp msgid "Remove Resource Remap Option" -msgstr "" +msgstr "Kaynak Yeniden Eşle Seçeneğini Kaldır" #: tools/editor/project_settings.cpp msgid "Project Settings (engine.cfg)" -msgstr "" +msgstr "Tasarı Ayarları (engine.cfg)" #: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp msgid "General" -msgstr "" +msgstr "Genel" #: tools/editor/project_settings.cpp tools/editor/property_editor.cpp msgid "Property:" -msgstr "" +msgstr "Özellik:" #: tools/editor/project_settings.cpp msgid "Del" -msgstr "" +msgstr "Sil" #: tools/editor/project_settings.cpp msgid "Copy To Platform.." -msgstr "" +msgstr "Düzleme Tıpkıla.." #: tools/editor/project_settings.cpp msgid "Input Map" -msgstr "" +msgstr "Eşleme Gir" #: tools/editor/project_settings.cpp msgid "Action:" -msgstr "" +msgstr "Eylem:" #: tools/editor/project_settings.cpp msgid "Device:" -msgstr "" +msgstr "Aygıt:" #: tools/editor/project_settings.cpp msgid "Index:" -msgstr "" +msgstr "Dizin:" #: tools/editor/project_settings.cpp msgid "Localization" -msgstr "" +msgstr "Yerelleştirme" #: tools/editor/project_settings.cpp msgid "Translations" -msgstr "" +msgstr "Çeviriler" #: tools/editor/project_settings.cpp msgid "Translations:" -msgstr "" +msgstr "Çeviriler:" #: tools/editor/project_settings.cpp msgid "Add.." -msgstr "" +msgstr "Ekle.." #: tools/editor/project_settings.cpp msgid "Remaps" -msgstr "" +msgstr "Yeniden Eşlemeler" #: tools/editor/project_settings.cpp msgid "Resources:" -msgstr "" +msgstr "Kaynaklar:" #: tools/editor/project_settings.cpp msgid "Remaps by Locale:" -msgstr "" +msgstr "Yerel Ayara Göre Yeniden Eşlemeler:" #: tools/editor/project_settings.cpp msgid "Locale" -msgstr "" +msgstr "Yerel" #: tools/editor/project_settings.cpp msgid "AutoLoad" -msgstr "" +msgstr "KendindenYükle" #: tools/editor/project_settings.cpp msgid "Plugins" -msgstr "" +msgstr "Eklentiler" #: tools/editor/property_editor.cpp msgid "Preset.." -msgstr "" +msgstr "Ön ayar.." #: tools/editor/property_editor.cpp msgid "Ease In" -msgstr "" +msgstr "Açılma" #: tools/editor/property_editor.cpp msgid "Ease Out" -msgstr "" +msgstr "Kararma" #: tools/editor/property_editor.cpp msgid "Zero" -msgstr "" +msgstr "Sıfır" #: tools/editor/property_editor.cpp msgid "Easing In-Out" -msgstr "" +msgstr "Açılma Kararma" #: tools/editor/property_editor.cpp msgid "Easing Out-In" -msgstr "" +msgstr "Kararma Açılma" #: tools/editor/property_editor.cpp msgid "File.." -msgstr "" +msgstr "Dizeç.." #: tools/editor/property_editor.cpp msgid "Dir.." -msgstr "" +msgstr "Diz.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" -msgstr "" +msgstr "Yükle" #: tools/editor/property_editor.cpp msgid "Assign" -msgstr "" +msgstr "Ata" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "Betiği Çalıştır" +msgstr "Yeni Betik" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" -msgstr "" +msgstr "Dizeç yüklenirken sorun oluştu: Bir kaynak değil!" #: tools/editor/property_editor.cpp msgid "Couldn't load image" -msgstr "" +msgstr "Bediz yüklenemedi" #: tools/editor/property_editor.cpp msgid "Bit %d, val %d." -msgstr "" +msgstr "Bit %d, val %d." #: tools/editor/property_editor.cpp msgid "On" -msgstr "" +msgstr "Açık" #: tools/editor/property_editor.cpp msgid "Properties:" -msgstr "" - -#: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" +msgstr "Özellikleri:" #: tools/editor/property_editor.cpp msgid "Sections:" -msgstr "" +msgstr "Bölümler:" #: tools/editor/property_selector.cpp -#, fuzzy msgid "Select Property" -msgstr "Düzenleyici Özellik Ekle" +msgstr "Nitelik Seç" #: tools/editor/property_selector.cpp -#, fuzzy msgid "Select Method" -msgstr "Bir Düğüm Seç" +msgstr "Yöntem Seç" #: tools/editor/pvrtc_compress.cpp msgid "Could not execute PVRTC tool:" -msgstr "" +msgstr "PVRTC aracı çalıştırılamadı:" #: tools/editor/pvrtc_compress.cpp msgid "Can't load back converted image using PVRTC tool:" -msgstr "" +msgstr "PVRTC aracını kullanarak dönüştürülen bedizi geri yükleyemiyor:" #: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp msgid "Reparent Node" -msgstr "" +msgstr "Yeniden Ata Düğümü" #: tools/editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" -msgstr "" +msgstr "Yeniden Ata Konumu (Yeni Ata Seç):" #: tools/editor/reparent_dialog.cpp msgid "Keep Global Transform" -msgstr "" +msgstr "Bütünsel Dönüşümü Tut" #: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "" +msgstr "Yeniden Ata Yap" #: tools/editor/resources_dock.cpp msgid "Create New Resource" -msgstr "" +msgstr "Yeni Kaynak Oluştur" #: tools/editor/resources_dock.cpp msgid "Open Resource" -msgstr "" +msgstr "Kaynak Aç" #: tools/editor/resources_dock.cpp msgid "Save Resource" -msgstr "" +msgstr "Kaynağı Kaydet" #: tools/editor/resources_dock.cpp msgid "Resource Tools" -msgstr "" +msgstr "Kaynak Araçları" #: tools/editor/resources_dock.cpp msgid "Make Local" -msgstr "" +msgstr "Yerelleştir" #: tools/editor/run_settings_dialog.cpp msgid "Run Mode:" -msgstr "" +msgstr "Çalışma Biçimi:" #: tools/editor/run_settings_dialog.cpp msgid "Current Scene" -msgstr "" +msgstr "Şu anki Sahne" #: tools/editor/run_settings_dialog.cpp msgid "Main Scene" -msgstr "" +msgstr "Ana Sahne" #: tools/editor/run_settings_dialog.cpp msgid "Main Scene Arguments:" -msgstr "" +msgstr "Ana Sahne Değiştirgenleri:" #: tools/editor/run_settings_dialog.cpp msgid "Scene Run Settings" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" +msgstr "Sahne Çalıştırma Ayarları" #: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." -msgstr "" +msgstr "Sahneleri örneklemek için ata yok." #: tools/editor/scene_tree_dock.cpp msgid "Error loading scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" +msgstr "%s Adlı sahne yüklenirken sorun oluştu" #: tools/editor/scene_tree_dock.cpp msgid "Ok" -msgstr "" +msgstr "Tamam" #: tools/editor/scene_tree_dock.cpp msgid "" "Cannot instance the scene '%s' because the current scene exists within one " "of its nodes." msgstr "" +"Geçerli sahne, düğümlerinden birinin içinde bulunduğu için '%s' sahnesi " +"örneklenemiyor." #: tools/editor/scene_tree_dock.cpp msgid "Instance Scene(s)" -msgstr "" +msgstr "Sahne(leri) Örnekle" #: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." -msgstr "" +msgstr "Bu işlem, ağaç kökü üzerinde yapılamaz." #: tools/editor/scene_tree_dock.cpp msgid "Move Node In Parent" -msgstr "" +msgstr "Düğümü Ataya Taşı" #: tools/editor/scene_tree_dock.cpp msgid "Move Nodes In Parent" -msgstr "" +msgstr "Düğümleri Ataya Taşı" #: tools/editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" -msgstr "" +msgstr "İkile Düğüm(leri)" #: tools/editor/scene_tree_dock.cpp msgid "Delete Node(s)?" -msgstr "" +msgstr "Düğüm(ler) Silinsin mi?" #: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done without a scene." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" +msgstr "Bu işlem bir sahne olmadan yapılamaz." #: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." -msgstr "" +msgstr "Bu işlem örneklenmiş sahnelerde yapılamaz." #: tools/editor/scene_tree_dock.cpp msgid "Save New Scene As.." -msgstr "" +msgstr "Yeni Sahneyi Başkaca Kaydet .." #: tools/editor/scene_tree_dock.cpp msgid "Makes Sense!" -msgstr "" +msgstr "Anlamlı!" #: tools/editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" -msgstr "" +msgstr "Yad bir sahnedeki düğümler üzerinde çalışamaz!" #: tools/editor/scene_tree_dock.cpp msgid "Can't operate on nodes the current scene inherits from!" -msgstr "" +msgstr "Geçerli sahneden kalıt aldığı düğümler üzerinde çalışamaz!" #: tools/editor/scene_tree_dock.cpp msgid "Remove Node(s)" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" +msgstr "Düğümleri Kaldır" #: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." msgstr "" +"Yeni sahne kaydedilemedi. Olası bağımlılıklar (örnekler) karşılanamadı." #: tools/editor/scene_tree_dock.cpp msgid "Error saving scene." -msgstr "" +msgstr "Sahne kaydedilirken sorun oluştu." #: tools/editor/scene_tree_dock.cpp msgid "Error duplicating scene to save it." -msgstr "" +msgstr "Kaydetmek için sahne ikilenirken sorun oluştu." #: tools/editor/scene_tree_dock.cpp msgid "Edit Groups" -msgstr "" +msgstr "Öbekleri Düzenle" #: tools/editor/scene_tree_dock.cpp msgid "Edit Connections" -msgstr "" +msgstr "Bağlantıları Düzenle" #: tools/editor/scene_tree_dock.cpp msgid "Delete Node(s)" -msgstr "" +msgstr "Düğümleri Sil" #: tools/editor/scene_tree_dock.cpp msgid "Add Child Node" -msgstr "" +msgstr "Çocuk Düğüm Ekle" #: tools/editor/scene_tree_dock.cpp msgid "Instance Child Scene" -msgstr "" +msgstr "Çocuk Sahnesini Örnekle" #: tools/editor/scene_tree_dock.cpp msgid "Change Type" -msgstr "" +msgstr "Türü Değiştir" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +msgid "Attach Script" +msgstr "Betik İliştir" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "Betiği Temizle" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" -msgstr "" +msgstr "Sahneden Birleştir" #: tools/editor/scene_tree_dock.cpp msgid "Save Branch as Scene" -msgstr "" +msgstr "Dalı Sahne olarak Kaydet" #: tools/editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete (No Confirm)" -msgstr "Lütfen doğrulayınız..." +msgstr "Sil (Doğrulama Yok)" #: tools/editor/scene_tree_dock.cpp msgid "Add/Create a New Node" -msgstr "" +msgstr "Yeni Bir Düğüm Ekle / Oluştur" #: tools/editor/scene_tree_dock.cpp msgid "" "Instance a scene file as a Node. Creates an inherited scene if no root node " "exists." msgstr "" +"Sahne dizecini Düğüm olarak örneklendirin. Kök düğüm yoksa kalıtsal bir " +"sahne oluşturur." #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." -msgstr "" +msgid "Attach a new or existing script for the selected node." +msgstr "Seçili düğüm için yeni veya mevcut bir betik iliştir." -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "" +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "Seçilen düğüm için betik temizle." #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" -msgstr "" +msgstr "Uzaysal Görünürlüğü Aç / Kapat" #: tools/editor/scene_tree_editor.cpp msgid "Toggle CanvasItem Visible" -msgstr "" +msgstr "CanvasItem'ı Görünür Duruma Getir" #: tools/editor/scene_tree_editor.cpp msgid "Instance:" -msgstr "" +msgstr "Örnek:" #: tools/editor/scene_tree_editor.cpp msgid "Invalid node name, the following characters are not allowed:" -msgstr "" +msgstr "Geçersiz düğüm adı, aşağıdaki damgalara izin verilmiyor:" #: tools/editor/scene_tree_editor.cpp msgid "Rename Node" -msgstr "" +msgstr "Düğümü Yeniden Adlandır" #: tools/editor/scene_tree_editor.cpp msgid "Scene Tree (Nodes):" -msgstr "" +msgstr "Sahne Ağacı (Düğümler):" #: tools/editor/scene_tree_editor.cpp msgid "Editable Children" -msgstr "" +msgstr "Düzenlenebilir Çocuklar" #: tools/editor/scene_tree_editor.cpp msgid "Load As Placeholder" -msgstr "" +msgstr "Yer Tutucu Olarak Yükle" #: tools/editor/scene_tree_editor.cpp msgid "Discard Instancing" -msgstr "" +msgstr "Örneği Boşalt" #: tools/editor/scene_tree_editor.cpp msgid "Open in Editor" -msgstr "Editörde Aç" +msgstr "Düzenleyicide Aç" #: tools/editor/scene_tree_editor.cpp -#, fuzzy msgid "Clear Inheritance" -msgstr "Mirası Temizle" +msgstr "Kalıtı Temizle" #: tools/editor/scene_tree_editor.cpp msgid "Clear Inheritance? (No Undo!)" -msgstr "" +msgstr "Kalıt Silinsin mi? (Geri Alınamaz!)" #: tools/editor/scene_tree_editor.cpp -#, fuzzy msgid "Clear!" msgstr "Temiz!" @@ -6469,32 +6671,31 @@ msgstr "Bir Düğüm Seç" #: tools/editor/script_create_dialog.cpp msgid "Invalid parent class name" -msgstr "Geçersiz ebeveyn sınıf adı" +msgstr "Geçersiz ata bölüt adı" #: tools/editor/script_create_dialog.cpp msgid "Valid chars:" -msgstr "Geçerli karakterler:" +msgstr "Geçerli damgalar:" #: tools/editor/script_create_dialog.cpp msgid "Invalid class name" -msgstr "Geçersiz sınıf adı" +msgstr "Geçersiz bölüt adı" #: tools/editor/script_create_dialog.cpp msgid "Valid name" msgstr "Uygun ad" #: tools/editor/script_create_dialog.cpp -#, fuzzy msgid "N/A" msgstr "Uygulanamaz" #: tools/editor/script_create_dialog.cpp msgid "Class name is invalid!" -msgstr "Sınıf adı geçersiz!" +msgstr "Bölüt adı geçersiz!" #: tools/editor/script_create_dialog.cpp msgid "Parent class name is invalid!" -msgstr "Ebeveyn sınıf adı geçersiz!" +msgstr "Ata bölüt adı geçersiz!" #: tools/editor/script_create_dialog.cpp msgid "Invalid path!" @@ -6502,44 +6703,47 @@ msgstr "Geçersiz yol!" #: tools/editor/script_create_dialog.cpp msgid "Could not create script in filesystem." -msgstr "" +msgstr "Dizeç düzeninde betik oluşturulamadı." + +#: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "Yazı tipi %s yüklerken sorun oluştu" #: tools/editor/script_create_dialog.cpp msgid "Path is empty" -msgstr "Dosya yolu boş" +msgstr "Yol boş" #: tools/editor/script_create_dialog.cpp msgid "Path is not local" -msgstr "" +msgstr "Yol yerel değil" #: tools/editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid base path" msgstr "Geçersiz üst yol" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "Dosya mevcut" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "Geçersiz uzantı" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "Geçerli yol" +msgid "Create new script" +msgstr "Yeni Betik Oluştur" + +#: tools/editor/script_create_dialog.cpp +msgid "Load existing script" +msgstr "Var olan betiği yükle" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" -msgstr "Sınıf Adı:" +msgstr "Bölüt Adı:" #: tools/editor/script_create_dialog.cpp msgid "Built-In Script" msgstr "Gömme Betik" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "Düğüm Betiği Oluştur" +msgid "Attach Node Script" +msgstr "Düğüm Betiği İliştir" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6551,7 +6755,7 @@ msgstr "Uyarı" #: tools/editor/script_editor_debugger.cpp msgid "Error:" -msgstr "Hata:" +msgstr "Sorun:" #: tools/editor/script_editor_debugger.cpp msgid "Source:" @@ -6559,27 +6763,27 @@ msgstr "Kaynak:" #: tools/editor/script_editor_debugger.cpp msgid "Function:" -msgstr "Fonksiyon:" +msgstr "İşlev:" #: tools/editor/script_editor_debugger.cpp msgid "Errors" -msgstr "Hatalar" +msgstr "Sorunlar" #: tools/editor/script_editor_debugger.cpp msgid "Child Process Connected" -msgstr "" +msgstr "Çocuk Süreç Bağlandı" #: tools/editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" -msgstr "" +msgstr "Önceki Örneği İncele" #: tools/editor/script_editor_debugger.cpp msgid "Inspect Next Instance" -msgstr "" +msgstr "Sonraki Örneğ İncele" #: tools/editor/script_editor_debugger.cpp msgid "Stack Frames" -msgstr "" +msgstr "Çerçeveleri Yığ" #: tools/editor/script_editor_debugger.cpp msgid "Variable" @@ -6587,31 +6791,31 @@ msgstr "Değişken" #: tools/editor/script_editor_debugger.cpp msgid "Errors:" -msgstr "Hatalar:" +msgstr "Sorunlar:" #: tools/editor/script_editor_debugger.cpp msgid "Stack Trace (if applicable):" -msgstr "" +msgstr "İzi Yığ (uygulanabilirse):" #: tools/editor/script_editor_debugger.cpp msgid "Remote Inspector" -msgstr "" +msgstr "Dolaylı Denetçi" #: tools/editor/script_editor_debugger.cpp msgid "Live Scene Tree:" -msgstr "" +msgstr "Canlı Sahne Ağacı:" #: tools/editor/script_editor_debugger.cpp msgid "Remote Object Properties: " -msgstr "" +msgstr "Dolaylı Nesne Özellikleri: " #: tools/editor/script_editor_debugger.cpp msgid "Profiler" -msgstr "" +msgstr "Kesitçi" #: tools/editor/script_editor_debugger.cpp msgid "Monitor" -msgstr "Ekran" +msgstr "Görüntülük" #: tools/editor/script_editor_debugger.cpp msgid "Value" @@ -6619,11 +6823,11 @@ msgstr "Değer" #: tools/editor/script_editor_debugger.cpp msgid "Monitors" -msgstr "Ekranlar" +msgstr "Görüntülükler" #: tools/editor/script_editor_debugger.cpp msgid "List of Video Memory Usage by Resource:" -msgstr "Kaynağa Göre Video Belleği Kullanımının Listesi:" +msgstr "Kaynağa Göre İzleti Belleği Kullanımının Dizelgesi:" #: tools/editor/script_editor_debugger.cpp msgid "Total:" @@ -6631,7 +6835,7 @@ msgstr "Toplam:" #: tools/editor/script_editor_debugger.cpp msgid "Video Mem" -msgstr "Video Belleği" +msgstr "İzleti Belleği" #: tools/editor/script_editor_debugger.cpp msgid "Resource Path" @@ -6647,23 +6851,23 @@ msgstr "Kullanım" #: tools/editor/script_editor_debugger.cpp msgid "Misc" -msgstr "" +msgstr "Türlü" #: tools/editor/script_editor_debugger.cpp msgid "Clicked Control:" -msgstr "" +msgstr "Tıklanan Denetim:" #: tools/editor/script_editor_debugger.cpp msgid "Clicked Control Type:" -msgstr "" +msgstr "Tıklanan Denetim Türü:" #: tools/editor/script_editor_debugger.cpp msgid "Live Edit Root:" -msgstr "" +msgstr "Canlı Kök Düzenle:" #: tools/editor/script_editor_debugger.cpp msgid "Set From Tree" -msgstr "" +msgstr "Ağaçtan Ayarla" #: tools/editor/settings_config_dialog.cpp msgid "Shortcuts" @@ -6675,7 +6879,7 @@ msgstr "Işın Çapını Değiştir" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" -msgstr "" +msgstr "Kamera FOV'sunu Değiştir" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Camera Size" @@ -6687,7 +6891,7 @@ msgstr "Küresel Şeklin Çapını Değiştir" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Box Shape Extents" -msgstr "Kübik Şekli Genislet" +msgstr "Kübik Şekli Genişlet" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Radius" @@ -6695,12 +6899,55 @@ msgstr "Kapsülün Çapını Değiştir" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Height" -msgstr "Kapsülün yüksekliğini değiştir" +msgstr "Kapsülün Yüksekliğini Değiştir" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Ray Shape Length" -msgstr "" +msgstr "Işın Şeklinin Uzunluğunu Değiştir" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" -msgstr "" +msgstr "Bildirim Kapsamını Değiştir" + +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "Bildirim Kapsamını Değiştir" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance, bir BakedLight kaynağı içermez." + +#~ msgid "Vertex" +#~ msgstr "Başucu" + +#~ msgid "Fragment" +#~ msgstr "Bölümlenme" + +#~ msgid "Lighting" +#~ msgstr "Aydınlatma" + +#~ msgid "Toggle Persisting" +#~ msgstr "Sürdürmeyi Aç/Kapat" + +#~ msgid "Global" +#~ msgstr "Bütünsel" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "" +#~ "Ata gizli olduğu için bu öğe görünür hale getirilemiyor. Önce atayı " +#~ "göster." + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "Yollar '/' ile başlayamaz, mutlak yollar 'res://', 'user://' veya " +#~ "'local://' ile başlamalıdır" + +#~ msgid "File exists" +#~ msgstr "Dosya mevcut" + +#~ msgid "Valid path" +#~ msgstr "Geçerli yol" diff --git a/tools/translations/ur_PK.po b/tools/translations/ur_PK.po index 188d2bb4c2..0eed08b52a 100644 --- a/tools/translations/ur_PK.po +++ b/tools/translations/ur_PK.po @@ -1,5 +1,5 @@ # Urdu (Pakistan) translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Muhammad Ali <ali@codeonion.com>, 2016. @@ -33,12 +33,6 @@ msgid "step argument is zero!" msgstr "سٹیپ کے ارگمنٹس سفر ہیں!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr ".یہ انسٹینس کے بغیر سکرپٹ نہی ہوتی" @@ -385,74 +379,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -560,10 +554,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -623,7 +613,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1770,6 +1761,11 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "سب سکریپشن بنائیں" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1837,7 +1833,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2063,7 +2061,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "ایک مینو منظر چنیں" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2743,6 +2743,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2970,6 +2971,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3870,6 +3875,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4735,18 +4783,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5511,6 +5547,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5970,10 +6064,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6117,7 +6207,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6151,10 +6241,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6231,14 +6317,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6247,10 +6325,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6289,10 +6363,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6317,10 +6387,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6359,8 +6425,14 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +#, fuzzy +msgid "Attach Script" +msgstr "سب سکریپشن بنائیں" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "سب سکریپشن بنائیں" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6385,13 +6457,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6487,6 +6557,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6499,16 +6573,18 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Create new script" +msgstr "سب سکریپشن بنائیں" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "" +#, fuzzy +msgid "Load existing script" +msgstr "سب سکریپشن بنائیں" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6519,8 +6595,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "سب سکریپشن بنائیں" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6685,3 +6762,8 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ" + +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ" diff --git a/tools/translations/zh_CN.po b/tools/translations/zh_CN.po index 318d4186f3..58f79fac56 100644 --- a/tools/translations/zh_CN.po +++ b/tools/translations/zh_CN.po @@ -1,11 +1,12 @@ # Chinese (China) translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # 纯洁的坏蛋 <tqj.zyy@gmail.com>, 2016. # 孤月蓝风 <trlanfeng@foxmail.com>, 2016. +# ageazrael <ageazrael@gmail.com>, 2016. # Bruce Guo <guoboism@hotmail.com>, 2016. -# Geequlim <geequlim@gmail.com>, 2016. +# Geequlim <geequlim@gmail.com>, 2016-2017. # Luo Jun <vipsbpig@gmail.com>, 2016. # oberon-tonya <360119124@qq.com>, 2016. # wanfang liu <wanfang.liu@gmail.com>, 2016. @@ -14,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2016-10-01 09:03+0000\n" -"Last-Translator: oberon-tonya <360119124@qq.com>\n" +"PO-Revision-Date: 2017-01-04 14:55+0000\n" +"Last-Translator: Geequlim <geequlim@gmail.com>\n" "Language-Team: Chinese (China) <https://hosted.weblate.org/projects/godot-" "engine/godot/zh_CN/>\n" "Language: zh_CN\n" @@ -23,7 +24,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.9-dev\n" +"X-Generator: Weblate 2.11-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -40,12 +41,6 @@ msgid "step argument is zero!" msgstr "step参数为0!" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "脚本没有实例化" @@ -105,7 +100,6 @@ msgid "Stack overflow with stack depth: " msgstr "堆栈深度溢出: " #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Functions:" msgstr "函数:" @@ -118,14 +112,12 @@ msgid "Signals:" msgstr "事件:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Name is not a valid identifier:" msgstr "名称不是有效的标识符:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Name already in use by another func/var/signal:" -msgstr "名称已经被其他的函数/变量/信号占用:" +msgstr "名称已经被其他的函数/变量/事件占用:" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Function" @@ -136,138 +128,120 @@ msgid "Rename Variable" msgstr "重命名变量" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Rename Signal" -msgstr "重命名信号" +msgstr "重命名事件" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Function" msgstr "添加函数" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Variable" msgstr "添加变量" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Signal" -msgstr "添加信号" +msgstr "添加事件" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Function" -msgstr "移除函数" +msgstr "删除函数" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Variable" -msgstr "移除变量" +msgstr "删除变量" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Editing Variable:" msgstr "编辑变量:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Signal" -msgstr "移除信号" +msgstr "删除事件" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Editing Signal:" -msgstr "连接事件:" +msgstr "编辑事件:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "更改类型" +msgstr "更改表达式" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Node" -msgstr "添加子节点" +msgstr "添加节点" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." -msgstr "按住Meta键放置一个访问器,按住Shift键放置一个通用签名" +msgstr "按住Meta键放置一个Getter节点,按住Shift键放置一个通用签名。" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." -msgstr "" +msgstr "按住Ctrl键放置一个Getter节点。按住Shift键放置一个通用签名。" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a simple reference to the node." -msgstr "" +msgstr "按住Meta键放置一个场景节点的引用节点。" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." -msgstr "" +msgstr "按住Ctrl键放置一个场景节点的引用节点。" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Meta to drop a Variable Setter." -msgstr "" +msgstr "按住Meta键放置变量的Setter节点。" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Hold Ctrl to drop a Variable Setter." -msgstr "按住Ctrl键放置一个变量设定器。" +msgstr "按住Ctrl键放置变量的Setter节点。" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Preload Node" -msgstr "添加子节点" +msgstr "添加Preload节点" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Node(s) From Tree" msgstr "从场景导入节点" #: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" -msgstr "添加访问器属性" +msgstr "添加 Getter Property" #: modules/visual_script/visual_script_editor.cpp msgid "Add Setter Property" -msgstr "添加设置器" +msgstr "添加 Setter Property" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "拷贝动画" +msgstr "条件节点(Condition)" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" -msgstr "" +msgstr "序列节点(Sequence)" #: modules/visual_script/visual_script_editor.cpp msgid "Switch" -msgstr "" +msgstr "选择节点(Switch)" #: modules/visual_script/visual_script_editor.cpp msgid "Iterator" -msgstr "" +msgstr "遍历节点(Iterator)" #: modules/visual_script/visual_script_editor.cpp msgid "While" -msgstr "" +msgstr "条件循环节点(While)" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Return" -msgstr "返回:" +msgstr "返回节点(Return)" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp msgid "Call" -msgstr "调用" +msgstr "调用到" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Get" -msgstr "设置" +msgstr "获取" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/property_editor.cpp @@ -296,9 +270,8 @@ msgid "Available Nodes:" msgstr "有效节点:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Select or create a function to edit graph" -msgstr "在 edit graph 中选择或者建立一个函数" +msgstr "选择或创建一个函数来编辑图" #: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp #: tools/editor/connections_dialog.cpp @@ -314,49 +287,41 @@ msgid "Close" msgstr "关闭" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Signal Arguments:" -msgstr "额外调用参数:" +msgstr "编辑事件参数:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Variable:" -msgstr "变量" +msgstr "编辑变量:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change" -msgstr "更改类型" +msgstr "更改" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Delete Selected" -msgstr "删除选中的文件?" +msgstr "删除选择的节点" #: modules/visual_script/visual_script_editor.cpp #: tools/editor/plugins/script_text_editor.cpp msgid "Toggle Breakpoint" -msgstr "切换断点" +msgstr "设置断点" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Find Node Type" -msgstr "查找下一项" +msgstr "查找节点类型" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Copy Nodes" -msgstr "拷贝姿势" +msgstr "复制节点" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Cut Nodes" -msgstr "新节点" +msgstr "剪切节点" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Paste Nodes" -msgstr "粘贴姿势" +msgstr "粘贴节点" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -371,18 +336,16 @@ msgid "Iterator became invalid: " msgstr "迭代器失效: " #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Invalid index property name." -msgstr "基类名称非法" +msgstr "属性名称非法" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Base object is not a Node!" msgstr "基础对象不是一个节点!" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Path does not lead Node!" -msgstr "必须是项目路径" +msgstr "路径必须指向节点" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." @@ -405,97 +368,93 @@ msgid "VariableSet not found in script: " msgstr "脚本中未找到VariableSet: " #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Custom node has no _step() method, can't process graph." -msgstr "自定义节点具备no_step()方法,不能生成图像" +msgstr "自定义脚本节点不包含_step()方法,不能生成图。" #: modules/visual_script/visual_script_nodes.cpp msgid "" "Invalid return value from _step(), must be integer (seq out), or string " "(error)." -msgstr "_step()的返回值无效,必须是整形(seq out),或字符串(error)。" +msgstr "_step()的返回值无效,必须是整形(seq out)或字符串(error)。" #: modules/visual_script/visual_script_nodes.cpp msgid "just pressed" -msgstr "" +msgstr "正好按下" #: modules/visual_script/visual_script_nodes.cpp msgid "just released" -msgstr "" +msgstr "刚好释放" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" -msgstr "" +msgstr "无法读取证书文件。路径和密码是否都正确?" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." -msgstr "写入项目PCK文件出错!" +msgstr "创建包(PCK)签名对象出错。" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." -msgstr "" +msgstr "创建包(PCK)签名时出错。" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" +"找不到导出模版。\n" +"下载并安装导出模版。" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "名称非法:" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." -msgstr "字体大小非法。" +msgstr "产品GUID非法。" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." -msgstr "父路径非法" +msgstr "发布GUID非法" -#: platform/winrt/export/export.cpp -#, fuzzy +#: platform/uwp/export/export.cpp msgid "Invalid background color." -msgstr "自定义字体文件非法。" +msgstr "无效的背景颜色。" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "Logo图片尺寸无效(图像尺寸必须是50x50)。" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -620,10 +579,6 @@ msgid "" "as parent." msgstr "VisibilityEnable2D类型的节点用于场景的根节点才能获得最好的效果。" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "BakedLightInstance未包含BakedLight资源。" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -666,9 +621,8 @@ msgstr "" "NavigationMeshInstance类型节点必须作为Navigation节点的子孙才能提供导航数据。" #: scene/3d/remote_transform.cpp -#, fuzzy msgid "Path property must point to a valid Spatial node to work." -msgstr "path属性必须指向一个合法的Particles2D节点才能正常工作。" +msgstr "path属性必须指向一个合法的Spatial节点才能正常工作。" #: scene/3d/scenario_fx.cpp msgid "" @@ -695,7 +649,8 @@ msgstr "" msgid "Cancel" msgstr "取消" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "好的" @@ -897,7 +852,6 @@ msgstr "" "行时它们会自动隐藏。" #: scene/main/viewport.cpp -#, fuzzy msgid "" "This viewport is not set as render target. If you intend for it to display " "its contents directly to the screen, make it a child of a Control so it can " @@ -933,7 +887,6 @@ msgid "Disabled" msgstr "已禁用" #: tools/editor/animation_editor.cpp -#, fuzzy msgid "All Selection" msgstr "所有选中项" @@ -986,12 +939,10 @@ msgid "Anim Track Rename" msgstr "重命名轨道" #: tools/editor/animation_editor.cpp -#, fuzzy msgid "Anim Track Change Interpolation" msgstr "轨道修改为插值模式" #: tools/editor/animation_editor.cpp -#, fuzzy msgid "Anim Track Change Value Mode" msgstr "轨道修改为值模式" @@ -1131,7 +1082,6 @@ msgid "Change Anim Loop" msgstr "修改动画循环" #: tools/editor/animation_editor.cpp -#, fuzzy msgid "Anim Create Typed Value Key" msgstr "创建输入值的动画关键帧" @@ -1200,7 +1150,6 @@ msgid "Anim. Optimizer" msgstr "优化动画" #: tools/editor/animation_editor.cpp -#, fuzzy msgid "Max. Linear Error:" msgstr "最大线性错误:" @@ -1481,7 +1430,6 @@ msgid "Make Function" msgstr "创建方法" #: tools/editor/connections_dialog.cpp -#, fuzzy msgid "Deferred" msgstr "延时" @@ -1502,7 +1450,6 @@ msgid "Connecting Signal:" msgstr "连接事件:" #: tools/editor/connections_dialog.cpp -#, fuzzy msgid "Create Subscription" msgstr "创建订阅" @@ -1851,6 +1798,11 @@ msgid "Constants:" msgstr "常量:" #: tools/editor/editor_help.cpp +#, fuzzy +msgid "Property Description:" +msgstr "简介:" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "方法描述:" @@ -1892,7 +1844,7 @@ msgstr "配置.." #: tools/editor/editor_log.cpp msgid " Output:" -msgstr "输出" +msgstr " 输出" #: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp msgid "Re-Importing" @@ -1918,7 +1870,9 @@ msgstr "保存资源出错!" msgid "Save Resource As.." msgstr "资源另存为.." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "好吧.." @@ -2013,12 +1967,10 @@ msgid "Copy Resource" msgstr "拷贝资源" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Make Built-In" msgstr "使之内置" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Make Sub-Resources Unique" msgstr "使子资源唯一化" @@ -2151,7 +2103,9 @@ msgstr "退出到项目管理窗口(未保存的修改将丢失)?" msgid "Pick a Main Scene" msgstr "选择主场景" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "额" @@ -2289,7 +2243,6 @@ msgid "Quit to Project List" msgstr "退出到项目列表" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Distraction Free Mode" msgstr "无干扰模式" @@ -2310,7 +2263,6 @@ msgid "Import" msgstr "导入" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Miscellaneous project or scene-wide tools." msgstr "其他工程或全场景工具" @@ -2462,7 +2414,6 @@ msgid "Editor Layout" msgstr "编辑器布局" #: tools/editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" msgstr "全屏模式" @@ -2635,12 +2586,10 @@ msgid "Time:" msgstr "时间:" #: tools/editor/editor_profiler.cpp -#, fuzzy msgid "Inclusive" msgstr "包含" #: tools/editor/editor_profiler.cpp -#, fuzzy msgid "Self" msgstr "自身" @@ -2846,6 +2795,7 @@ msgstr "源贴图:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "目标路径:" @@ -2871,7 +2821,6 @@ msgid "No target font resource!" msgstr "请设置目标字体资源!" #: tools/editor/io_plugins/editor_font_import_plugin.cpp -#, fuzzy msgid "" "Invalid file extension.\n" "Please use .fnt." @@ -2977,7 +2926,6 @@ msgid "Audio Sample" msgstr "音效" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "New Clip" msgstr "新片段" @@ -2998,32 +2946,26 @@ msgid "Optimizer" msgstr "优化" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Max Linear Error" msgstr "最大线性误差" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Max Angular Error" msgstr "最大角度误差" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Max Angle" msgstr "最大角度" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Clips" -msgstr "剪辑" +msgstr "片段" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Start(s)" msgstr "起点" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "End(s)" msgstr "终点" @@ -3041,12 +2983,10 @@ msgid "Source path is empty." msgstr "源路径为空。" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Couldn't load post-import script." msgstr "无法载入后导入脚本" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Invalid/broken script for post-import." msgstr "后导入脚本被损坏或不合法" @@ -3075,7 +3015,6 @@ msgid "Target Texture Folder:" msgstr "目标贴图目录:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Post-Process Script:" msgstr "后处理脚本:" @@ -3088,6 +3027,10 @@ msgid "Auto" msgstr "自动" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "节点名称:" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "找不到下列文件:" @@ -3117,17 +3060,14 @@ msgid "Running Custom Script.." msgstr "执行自定义脚本.." #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Couldn't load post-import script:" msgstr "无法载入后导入脚本:" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Invalid/broken script for post-import (check console):" msgstr "后处理脚本被损坏或不合法(查看控制台):" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp -#, fuzzy msgid "Error running post-import script:" msgstr "后处理脚本运行发生错误" @@ -3384,7 +3324,6 @@ msgid "Translation" msgstr "语言" #: tools/editor/multi_node_edit.cpp -#, fuzzy msgid "MultiNode Set" msgstr "多节点组" @@ -3496,7 +3435,6 @@ msgid "Animation position (in seconds)." msgstr "动画位置(单位:秒)" #: tools/editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Scale animation playback globally for the node." msgstr "节点全局缩放动画回放" @@ -3827,9 +3765,8 @@ msgid "Paste Pose" msgstr "粘贴姿势" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Select Mode" -msgstr "选择模式(Q)" +msgstr "选择模式" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" @@ -3848,14 +3785,12 @@ msgid "Alt+RMB: Depth list selection" msgstr "Alt+鼠标右键:显示鼠标点击位置下的所有节点列表" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move Mode" -msgstr "移动模式(W)" +msgstr "移动模式" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Rotate Mode" -msgstr "旋转模式(E)" +msgstr "旋转模式" #: tools/editor/plugins/canvas_item_editor_plugin.cpp #: tools/editor/plugins/spatial_editor_plugin.cpp @@ -3932,9 +3867,8 @@ msgid "Clear Bones" msgstr "清除骨骼" #: tools/editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Bones" -msgstr "添加骨骼" +msgstr "显示骨骼" #: tools/editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -3997,6 +3931,49 @@ msgstr "设置值" msgid "Snap (Pixels):" msgstr "吸附(像素):" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "添加 %s" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "新节点" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "从%s实例化场景出错!" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "好吧" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "没有选中节点来添加实例。" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "此操作只能应用于单个选中节点。" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "修改默认值" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4671,14 +4648,12 @@ msgid "Save Theme As" msgstr "主题另存为" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close Docs" -msgstr "拷贝到下一行" +msgstr "关闭文档" #: tools/editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "关闭" +msgstr "关闭全部" #: tools/editor/plugins/script_editor_plugin.cpp #: tools/editor/plugins/script_text_editor.cpp @@ -4788,12 +4763,11 @@ msgstr "调试器" #: tools/editor/plugins/script_editor_plugin.cpp msgid "" "Built-in scripts can only be edited when the scene they belong to is loaded" -msgstr "" +msgstr "内建脚本只有在其所属的节点读取后才能被修改" #: tools/editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" -msgstr "颜色" +msgstr "拾取颜色" #: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp msgid "Move Up" @@ -4866,29 +4840,17 @@ msgstr "前往行.." msgid "Contextual Help" msgstr "搜索光标位置" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "顶点" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "片段" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "光照" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" -msgstr "" +msgstr "修改Scalar常量系数" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Constant" -msgstr "" +msgstr "修改Vec常量系数" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Constant" -msgstr "" +msgstr "修改RGB常量系数" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Operator" @@ -4936,15 +4898,15 @@ msgstr "修改默认值" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change XForm Uniform" -msgstr "修改Uniform XForm " +msgstr "修改Uniform XForm" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Texture Uniform" -msgstr "修改Uniform Texture " +msgstr "修改Uniform纹理" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Cubemap Uniform" -msgstr "修改Uniform Cubemap " +msgstr "修改Uniform Cubemap" #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Comment" @@ -5143,38 +5105,34 @@ msgid "Bottom View" msgstr "" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Top View" -msgstr "视图" +msgstr "Top视图" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Rear View" -msgstr "视图" +msgstr "Rear视图" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Front View" -msgstr "" +msgstr "正面视图" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Left View" -msgstr "视图" +msgstr "左视图" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Right View" -msgstr "" +msgstr "右视图" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Switch Perspective/Orthogonal view" -msgstr "" +msgstr "切换投影(正交)视图" #: tools/editor/plugins/spatial_editor_plugin.cpp msgid "Insert Animation Key" msgstr "插入动画帧" #: tools/editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Focus Origin" msgstr "显示原点" @@ -5444,9 +5402,8 @@ msgid "Remove Item" msgstr "移除项目" #: tools/editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "保存主题" +msgstr "主题" #: tools/editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5645,6 +5602,71 @@ msgid "No exporter for platform '%s' yet." msgstr "没有针对'%s'平台的导出模板。" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "创建资源" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "名称可用" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "过渡" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "State" +msgstr "状态" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "密码" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "字符合法:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "新名称:" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "包含" @@ -5962,12 +5984,10 @@ msgid "Unnamed Project" msgstr "未命名项目" #: tools/editor/project_manager.cpp -#, fuzzy msgid "Are you sure to open more than one project?" msgstr "您确定要打开多个项目吗?" #: tools/editor/project_manager.cpp -#, fuzzy msgid "Are you sure to run more than one project?" msgstr "您确定要执行多个项目吗?" @@ -5979,7 +5999,7 @@ msgstr "移除此项目(项目的文件不受影响)" msgid "" "You are about the scan %s folders for existing Godot projects. Do you " "confirm?" -msgstr "" +msgstr "您确认要扫描%s目录下现有的Godot项目吗?" #: tools/editor/project_manager.cpp msgid "Project Manager" @@ -5998,9 +6018,8 @@ msgid "Scan" msgstr "扫描" #: tools/editor/project_manager.cpp -#, fuzzy msgid "Select a Folder to Scan" -msgstr "选择一个节点" +msgstr "选择要扫描的目录" #: tools/editor/project_manager.cpp msgid "New Project" @@ -6012,7 +6031,7 @@ msgstr "退出" #: tools/editor/project_settings.cpp msgid "Key " -msgstr "键" +msgstr "键 " #: tools/editor/project_settings.cpp msgid "Joy Button" @@ -6028,7 +6047,7 @@ msgstr "鼠标按键:" #: tools/editor/project_settings.cpp msgid "Invalid action (anything goes but '/' or ':')." -msgstr "" +msgstr "Action名非法(不得包含'/'或':')" #: tools/editor/project_settings.cpp msgid "Action '%s' already exists!" @@ -6107,10 +6126,6 @@ msgid "Erase Input Action Event" msgstr "移除输入事件" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "保存设置出错。" @@ -6227,22 +6242,18 @@ msgid "Preset.." msgstr "预设.." #: tools/editor/property_editor.cpp -#, fuzzy msgid "Ease In" msgstr "缓入" #: tools/editor/property_editor.cpp -#, fuzzy msgid "Ease Out" msgstr "缓出" #: tools/editor/property_editor.cpp -#, fuzzy msgid "Zero" msgstr "置零" #: tools/editor/property_editor.cpp -#, fuzzy msgid "Easing In-Out" msgstr "缓入缓出" @@ -6258,7 +6269,7 @@ msgstr "文件.." msgid "Dir.." msgstr "目录.." -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "加载" @@ -6267,9 +6278,8 @@ msgid "Assign" msgstr "" #: tools/editor/property_editor.cpp -#, fuzzy msgid "New Script" -msgstr "下一个脚本" +msgstr "新建脚本" #: tools/editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6292,22 +6302,16 @@ msgid "Properties:" msgstr "属性:" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "全局" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "选项:" #: tools/editor/property_selector.cpp -#, fuzzy msgid "Select Property" -msgstr "选择顶点" +msgstr "选择属性" #: tools/editor/property_selector.cpp -#, fuzzy msgid "Select Method" -msgstr "选择模式(Q)" +msgstr "选择方式" #: tools/editor/pvrtc_compress.cpp msgid "Could not execute PVRTC tool:" @@ -6374,15 +6378,6 @@ msgid "Scene Run Settings" msgstr "场景运行设置" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "好吧" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "没有选中节点来添加实例。" - -#: tools/editor/scene_tree_dock.cpp -#, fuzzy msgid "No parent to instance the scenes at." msgstr "没有选中节点来添加实例。" @@ -6391,10 +6386,6 @@ msgid "Error loading scene from %s" msgstr "从%s加载场景出错!" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "从%s实例化场景出错!" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "好的" @@ -6433,10 +6424,6 @@ msgid "This operation can't be done without a scene." msgstr "此操作必须在打开一个场景后才能执行。" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "此操作只能应用于单个选中节点。" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "此操作不能应用于实例化的场景。" @@ -6461,10 +6448,6 @@ msgid "Remove Node(s)" msgstr "移除节点" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "新节点" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6503,10 +6486,14 @@ msgid "Change Type" msgstr "更改类型" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" msgstr "添加脚本" #: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "清除脚本" + +#: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" msgstr "从场景中合并" @@ -6515,9 +6502,8 @@ msgid "Save Branch as Scene" msgstr "将分支保存为场景" #: tools/editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete (No Confirm)" -msgstr "请确认..." +msgstr "确认删除" #: tools/editor/scene_tree_dock.cpp msgid "Add/Create a New Node" @@ -6530,15 +6516,12 @@ msgid "" msgstr "实例化场景文件为一个节点,如果没有根节点则创建一个继承自该文件的场景。" #: tools/editor/scene_tree_dock.cpp -#, fuzzy -msgid "Create a new script for the selected node." -msgstr "将选中的场景实例为选中节点的子节点。" +msgid "Attach a new or existing script for the selected node." +msgstr "为选中节点创建或设置脚本" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." -msgstr "无法显示此节点,请先取消隐藏其父节点。" +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "清除选中节点的脚本" #: tools/editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" @@ -6633,6 +6616,10 @@ msgid "Could not create script in filesystem." msgstr "无法创建脚本。" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "从%s加载脚本出错!" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "文件路径为空" @@ -6645,16 +6632,16 @@ msgid "Invalid base path" msgstr "父路径非法" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "文件已存在" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "扩展名非法" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "路径可用" +msgid "Create new script" +msgstr "创建新脚本" + +#: tools/editor/script_create_dialog.cpp +msgid "Load existing script" +msgstr "加载现有脚本" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6665,8 +6652,8 @@ msgid "Built-In Script" msgstr "内置脚本" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "创建脚本" +msgid "Attach Node Script" +msgstr "设置节点的脚本" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6730,11 +6717,11 @@ msgstr "即时场景树:" #: tools/editor/script_editor_debugger.cpp msgid "Remote Object Properties: " -msgstr "远程对象属性。" +msgstr "远程对象属性: " #: tools/editor/script_editor_debugger.cpp msgid "Profiler" -msgstr "" +msgstr "性能分析" #: tools/editor/script_editor_debugger.cpp msgid "Monitor" @@ -6814,7 +6801,7 @@ msgstr "更改球体半径" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Box Shape Extents" -msgstr "" +msgstr "改变方框大小" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Radius" @@ -6825,15 +6812,50 @@ msgid "Change Capsule Shape Height" msgstr "更改胶囊高度" #: tools/editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Ray Shape Length" msgstr "更改射线形状长度" #: tools/editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Notifier Extents" msgstr "更改通知器级别" +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "更改通知器级别" + +#~ msgid "BakedLightInstance does not contain a BakedLight resource." +#~ msgstr "BakedLightInstance未包含BakedLight资源。" + +#~ msgid "Vertex" +#~ msgstr "顶点" + +#~ msgid "Fragment" +#~ msgstr "片段" + +#~ msgid "Lighting" +#~ msgstr "光照" + +#~ msgid "Global" +#~ msgstr "全局" + +#~ msgid "" +#~ "This item cannot be made visible because the parent is hidden. Unhide the " +#~ "parent first." +#~ msgstr "无法显示此节点,请先取消隐藏其父节点。" + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "路径不能以'/'符号打头,绝对路径必须以'res://'、'user://'或者'local://'打头" + +#~ msgid "File exists" +#~ msgstr "文件已存在" + +#~ msgid "Valid path" +#~ msgstr "路径可用" + #~ msgid "Cannot go into subdir:" #~ msgstr "无法打开目录:" diff --git a/tools/translations/zh_HK.po b/tools/translations/zh_HK.po index 9f6d7786ac..60f2b51464 100644 --- a/tools/translations/zh_HK.po +++ b/tools/translations/zh_HK.po @@ -1,5 +1,5 @@ # Chinese (Honk Kong) translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # Wesley (zx-wt) <ZX_WT@ymail.com>, 2016. @@ -33,12 +33,6 @@ msgid "step argument is zero!" msgstr "" #: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" - -#: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" msgstr "" @@ -391,76 +385,76 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid unique name." msgstr "無效名稱" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid product GUID." msgstr "無效字型" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -568,10 +562,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -631,7 +621,8 @@ msgstr "" msgid "Cancel" msgstr "取消" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "OK" @@ -1785,6 +1776,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1852,7 +1847,9 @@ msgstr "" msgid "Save Resource As.." msgstr "把資源另存為..." -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "如來如此" @@ -2080,7 +2077,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "選擇主場景" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2761,6 +2760,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2988,6 +2988,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3887,6 +3891,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "OK :(" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4753,18 +4800,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5528,6 +5563,70 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +#, fuzzy +msgid "Create Android keystore" +msgstr "新增資料夾" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Full name" +msgstr "有效名稱" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Organization" +msgstr "本地化" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "Password" +msgstr "密碼:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "at least 6 characters" +msgstr "有效字符:" + +#: tools/editor/project_export.cpp +#, fuzzy +msgid "File name" +msgstr "有效名稱" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "包括" @@ -5987,10 +6086,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6134,7 +6229,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6168,10 +6263,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6250,14 +6341,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "OK :(" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6266,10 +6349,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "Ok" @@ -6308,10 +6387,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6336,10 +6411,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6378,8 +6449,14 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" -msgstr "" +#, fuzzy +msgid "Attach Script" +msgstr "腳本" + +#: tools/editor/scene_tree_dock.cpp +#, fuzzy +msgid "Clear Script" +msgstr "下一個腳本" #: tools/editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -6404,13 +6481,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6506,6 +6581,11 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Error loading script from %s" +msgstr "載入字形出現錯誤" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "路徑為空" @@ -6518,16 +6598,18 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" -msgstr "檔案已存在" - -#: tools/editor/script_create_dialog.cpp msgid "Invalid extension" msgstr "無效副檔名" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" -msgstr "有效路徑" +#, fuzzy +msgid "Create new script" +msgstr "新增" + +#: tools/editor/script_create_dialog.cpp +#, fuzzy +msgid "Load existing script" +msgstr "下一個腳本" #: tools/editor/script_create_dialog.cpp msgid "Class Name:" @@ -6538,8 +6620,9 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" -msgstr "" +#, fuzzy +msgid "Attach Node Script" +msgstr "下一個腳本" #: tools/editor/script_editor_debugger.cpp msgid "Bytes:" @@ -6706,6 +6789,16 @@ msgstr "" msgid "Change Notifier Extents" msgstr "" +#: tools/editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#~ msgid "File exists" +#~ msgstr "檔案已存在" + +#~ msgid "Valid path" +#~ msgstr "有效路徑" + #~ msgid "Cannot go into subdir:" #~ msgstr "無法進入次要資料夾" diff --git a/tools/translations/zh_TW.po b/tools/translations/zh_TW.po index af66795003..efad7ee167 100644 --- a/tools/translations/zh_TW.po +++ b/tools/translations/zh_TW.po @@ -1,21 +1,22 @@ # Chinese (Taiwan) translation of the Godot Engine editor -# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community +# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community # This file is distributed under the same license as the Godot source code. # # popcade <popcade@gmail.com>, 2016. +# Sam Pan <sampan66@gmail.com>, 2016. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-06-13 13:57+0000\n" -"Last-Translator: popcade <popcade@gmail.com>\n" +"PO-Revision-Date: 2016-10-23 19:47+0000\n" +"Last-Translator: Sam Pan <sampan66@gmail.com>\n" "Language-Team: Chinese (Taiwan) <https://hosted.weblate.org/projects/godot-" "engine/godot/zh_TW/>\n" "Language: zh_TW\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.7-dev\n" +"X-Generator: Weblate 2.9-dev\n" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -25,41 +26,40 @@ msgstr "" #: modules/gdscript/gd_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "" +msgstr "解碼字節位元不足,或為無效格式。" #: modules/gdscript/gd_functions.cpp msgid "step argument is zero!" -msgstr "" - -#: modules/gdscript/gd_functions.cpp -msgid "" -"Paths cannot start with '/', absolute paths must start with 'res://', " -"'user://', or 'local://'" -msgstr "" +msgstr "step引數為0!" #: modules/gdscript/gd_functions.cpp msgid "Not a script with an instance" -msgstr "" +msgstr "非為單一事件腳本" #: modules/gdscript/gd_functions.cpp +#, fuzzy msgid "Not based on a script" -msgstr "" +msgstr "未依據腳本" #: modules/gdscript/gd_functions.cpp +#, fuzzy msgid "Not based on a resource file" -msgstr "" +msgstr "未依據資源檔案" #: modules/gdscript/gd_functions.cpp +#, fuzzy msgid "Invalid instance dictionary format (missing @path)" -msgstr "" +msgstr "無效的事件詞典格式(遺失 @path)" #: modules/gdscript/gd_functions.cpp +#, fuzzy msgid "Invalid instance dictionary format (can't load script at @path)" -msgstr "" +msgstr "無效的事件詞典格式(無法載入腳本 @path)" #: modules/gdscript/gd_functions.cpp +#, fuzzy msgid "Invalid instance dictionary format (invalid script at @path)" -msgstr "" +msgstr "無效的事件詞典格式(無效的腳本 @path)" #: modules/gdscript/gd_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" @@ -78,14 +78,16 @@ msgid "" msgstr "" #: modules/visual_script/visual_script.cpp +#, fuzzy msgid "" "Return value must be assigned to first element of node working memory! Fix " "your node please." -msgstr "" +msgstr "回傳值需被指定為運算記憶體節點的第一要素!請修正該節點。" #: modules/visual_script/visual_script.cpp +#, fuzzy msgid "Node returned an invalid sequence output: " -msgstr "" +msgstr "節點回傳一個無效的連續輸出: " #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" @@ -381,74 +383,74 @@ msgstr "" msgid "just released" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "Couldn't read the certficate file. Are the path and password both correct?" msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the signature object." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Error creating the package signature." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "" "No export templates found.\n" "Download and install export templates." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom debug package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Custom release package not found." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid unique name." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid product GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -#: platform/winrt/export/export.cpp +#: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" @@ -562,10 +564,6 @@ msgid "" "as parent." msgstr "" -#: scene/3d/baked_light_instance.cpp -msgid "BakedLightInstance does not contain a BakedLight resource." -msgstr "" - #: scene/3d/body_shape.cpp msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " @@ -625,7 +623,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp +#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "OK" msgstr "" @@ -1768,6 +1767,10 @@ msgid "Constants:" msgstr "" #: tools/editor/editor_help.cpp +msgid "Property Description:" +msgstr "" + +#: tools/editor/editor_help.cpp msgid "Method Description:" msgstr "" @@ -1835,7 +1838,9 @@ msgstr "" msgid "Save Resource As.." msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp msgid "I see.." msgstr "" @@ -2060,7 +2065,9 @@ msgstr "" msgid "Pick a Main Scene" msgstr "" -#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp +#: tools/editor/editor_node.cpp +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp msgid "Ugh" msgstr "" @@ -2740,6 +2747,7 @@ msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp #: tools/editor/io_plugins/editor_texture_import_plugin.cpp #: tools/editor/io_plugins/editor_translation_import_plugin.cpp +#: tools/editor/project_export.cpp msgid "Target Path:" msgstr "" @@ -2967,6 +2975,10 @@ msgid "Auto" msgstr "" #: tools/editor/io_plugins/editor_scene_import_plugin.cpp +msgid "Root Node Name:" +msgstr "" + +#: tools/editor/io_plugins/editor_scene_import_plugin.cpp msgid "The Following Files are Missing:" msgstr "" @@ -3866,6 +3878,49 @@ msgstr "" msgid "Snap (Pixels):" msgstr "" +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +#: tools/editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "" + +#: tools/editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + #: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp #: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp #: tools/editor/plugins/navigation_polygon_editor_plugin.cpp @@ -4730,18 +4785,6 @@ msgstr "" msgid "Contextual Help" msgstr "" -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Vertex" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Fragment" -msgstr "" - -#: tools/editor/plugins/shader_editor_plugin.cpp -msgid "Lighting" -msgstr "" - #: tools/editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" msgstr "" @@ -5504,6 +5547,64 @@ msgid "No exporter for platform '%s' yet." msgstr "" #: tools/editor/project_export.cpp +msgid "Create Android keystore" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Full name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organizational unit" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Organization" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "City" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "State" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "2 letter country code" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "User alias" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Password" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "at least 6 characters" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "File name" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Path : (better to save outside of project)" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "" +"Release keystore is not set.\n" +"Do you want to create one?" +msgstr "" + +#: tools/editor/project_export.cpp +msgid "Fill Keystore/Release User and Release Password" +msgstr "" + +#: tools/editor/project_export.cpp msgid "Include" msgstr "" @@ -5963,10 +6064,6 @@ msgid "Erase Input Action Event" msgstr "" #: tools/editor/project_settings.cpp -msgid "Toggle Persisting" -msgstr "" - -#: tools/editor/project_settings.cpp msgid "Error saving settings." msgstr "" @@ -6110,7 +6207,7 @@ msgstr "" msgid "Dir.." msgstr "" -#: tools/editor/property_editor.cpp +#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp msgid "Load" msgstr "" @@ -6143,10 +6240,6 @@ msgid "Properties:" msgstr "" #: tools/editor/property_editor.cpp -msgid "Global" -msgstr "" - -#: tools/editor/property_editor.cpp msgid "Sections:" msgstr "" @@ -6223,14 +6316,6 @@ msgid "Scene Run Settings" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "OK :(" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp -msgid "No parent to instance a child at." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." msgstr "" @@ -6239,10 +6324,6 @@ msgid "Error loading scene from %s" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Error instancing scene from %s" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "Ok" msgstr "" @@ -6281,10 +6362,6 @@ msgid "This operation can't be done without a scene." msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "This operation requires a single selected node." -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." msgstr "" @@ -6309,10 +6386,6 @@ msgid "Remove Node(s)" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create Node" -msgstr "" - -#: tools/editor/scene_tree_dock.cpp msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -6351,7 +6424,11 @@ msgid "Change Type" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Add Script" +msgid "Attach Script" +msgstr "" + +#: tools/editor/scene_tree_dock.cpp +msgid "Clear Script" msgstr "" #: tools/editor/scene_tree_dock.cpp @@ -6377,13 +6454,11 @@ msgid "" msgstr "" #: tools/editor/scene_tree_dock.cpp -msgid "Create a new script for the selected node." +msgid "Attach a new or existing script for the selected node." msgstr "" -#: tools/editor/scene_tree_editor.cpp -msgid "" -"This item cannot be made visible because the parent is hidden. Unhide the " -"parent first." +#: tools/editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." msgstr "" #: tools/editor/scene_tree_editor.cpp @@ -6479,6 +6554,10 @@ msgid "Could not create script in filesystem." msgstr "" #: tools/editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: tools/editor/script_create_dialog.cpp msgid "Path is empty" msgstr "" @@ -6491,15 +6570,15 @@ msgid "Invalid base path" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "File exists" +msgid "Invalid extension" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Create new script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Valid path" +msgid "Load existing script" msgstr "" #: tools/editor/script_create_dialog.cpp @@ -6511,7 +6590,7 @@ msgid "Built-In Script" msgstr "" #: tools/editor/script_create_dialog.cpp -msgid "Create Node Script" +msgid "Attach Node Script" msgstr "" #: tools/editor/script_editor_debugger.cpp @@ -6591,44 +6670,48 @@ msgid "Value" msgstr "" #: tools/editor/script_editor_debugger.cpp +#, fuzzy msgid "Monitors" -msgstr "" +msgstr "監看畫面" #: tools/editor/script_editor_debugger.cpp +#, fuzzy msgid "List of Video Memory Usage by Resource:" -msgstr "" +msgstr "影片記憶體使用容量列表(依資源別):" #: tools/editor/script_editor_debugger.cpp msgid "Total:" -msgstr "" +msgstr "總計:" #: tools/editor/script_editor_debugger.cpp msgid "Video Mem" -msgstr "" +msgstr "影片記憶體" #: tools/editor/script_editor_debugger.cpp msgid "Resource Path" -msgstr "" +msgstr "資源路徑" #: tools/editor/script_editor_debugger.cpp msgid "Type" -msgstr "" +msgstr "類型" #: tools/editor/script_editor_debugger.cpp msgid "Usage" -msgstr "" +msgstr "使用量" #: tools/editor/script_editor_debugger.cpp msgid "Misc" -msgstr "" +msgstr "雜項" #: tools/editor/script_editor_debugger.cpp +#, fuzzy msgid "Clicked Control:" -msgstr "" +msgstr "點擊控制:" #: tools/editor/script_editor_debugger.cpp +#, fuzzy msgid "Clicked Control Type:" -msgstr "" +msgstr "點擊控制類型:" #: tools/editor/script_editor_debugger.cpp msgid "Live Edit Root:" @@ -6640,35 +6723,35 @@ msgstr "" #: tools/editor/settings_config_dialog.cpp msgid "Shortcuts" -msgstr "" +msgstr "捷徑" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Light Radius" -msgstr "" +msgstr "變更光源半徑" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" -msgstr "" +msgstr "變更鏡頭視野(FOV)" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Camera Size" -msgstr "" +msgstr "變更鏡頭尺寸" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Sphere Shape Radius" -msgstr "" +msgstr "變更球型半徑" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Box Shape Extents" -msgstr "" +msgstr "變更框型範圍" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Radius" -msgstr "" +msgstr "變更楕圓體半徑" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Height" -msgstr "" +msgstr "變更楕圓體高度" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Ray Shape Length" @@ -6677,3 +6760,15 @@ msgstr "" #: tools/editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" msgstr "" + +#: tools/editor/spatial_editor_gizmos.cpp +#, fuzzy +msgid "Change Probe Extents" +msgstr "變更框型範圍" + +#~ msgid "" +#~ "Paths cannot start with '/', absolute paths must start with 'res://', " +#~ "'user://', or 'local://'" +#~ msgstr "" +#~ "路徑不可以\"/\"為起始,完整路徑需以'res://'、'user://'、或 'local://'做為" +#~ "起始" |