diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/bmp/SCsub | 2 | ||||
-rw-r--r-- | modules/csg/SCsub | 3 | ||||
-rw-r--r-- | modules/gdscript/gdscript.cpp | 42 | ||||
-rw-r--r-- | modules/gltf/SCsub | 2 | ||||
-rw-r--r-- | modules/gridmap/SCsub | 2 | ||||
-rw-r--r-- | modules/hdr/SCsub | 2 | ||||
-rw-r--r-- | modules/minimp3/SCsub | 2 | ||||
-rw-r--r-- | modules/mono/csharp_script.cpp | 45 | ||||
-rw-r--r-- | modules/tga/SCsub | 2 | ||||
-rw-r--r-- | modules/visual_script/visual_script.cpp | 4 |
10 files changed, 75 insertions, 31 deletions
diff --git a/modules/bmp/SCsub b/modules/bmp/SCsub index 4f3405ff28..9d317887c3 100644 --- a/modules/bmp/SCsub +++ b/modules/bmp/SCsub @@ -5,5 +5,5 @@ Import("env_modules") env_bmp = env_modules.Clone() -# Godot's own source files +# Godot source files env_bmp.add_source_files(env.modules_sources, "*.cpp") diff --git a/modules/csg/SCsub b/modules/csg/SCsub index c7307ddefd..55f859db11 100644 --- a/modules/csg/SCsub +++ b/modules/csg/SCsub @@ -3,10 +3,9 @@ Import("env") Import("env_modules") -# Godot's own source files env_csg = env_modules.Clone() -# Godot's own source files +# Godot source files env_csg.add_source_files(env.modules_sources, "*.cpp") if env["tools"]: env_csg.add_source_files(env.modules_sources, "editor/*.cpp") diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index d752bef14f..dc6bfbb034 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -325,16 +325,23 @@ void GDScript::_get_script_property_list(List<PropertyInfo> *r_list, bool p_incl for (int i = 0; i < msort.size(); i++) { props.push_front(sptr->member_info[msort[i].name]); } + +#ifdef TOOLS_ENABLED + r_list->push_back(sptr->get_class_category()); +#endif // TOOLS_ENABLED + + for (const PropertyInfo &E : props) { + r_list->push_back(E); + } + + props.clear(); + if (!p_include_base) { break; } sptr = sptr->_base; } - - for (const PropertyInfo &E : props) { - r_list->push_back(E); - } } void GDScript::get_script_property_list(List<PropertyInfo> *r_list) const { @@ -434,10 +441,6 @@ void GDScript::set_source_code(const String &p_code) { #ifdef TOOLS_ENABLED void GDScript::_update_exports_values(HashMap<StringName, Variant> &values, List<PropertyInfo> &propnames) { - if (base_cache.is_valid()) { - base_cache->_update_exports_values(values, propnames); - } - for (const KeyValue<StringName, Variant> &E : member_default_values_cache) { values[E.key] = E.value; } @@ -445,6 +448,10 @@ void GDScript::_update_exports_values(HashMap<StringName, Variant> &values, List for (const PropertyInfo &E : members_cache) { propnames.push_back(E); } + + if (base_cache.is_valid()) { + base_cache->_update_exports_values(values, propnames); + } } void GDScript::_add_doc(const DocData::ClassDoc &p_inner_class) { @@ -703,6 +710,8 @@ bool GDScript::_update_exports(bool *r_err, bool p_recursive_call, PlaceHolderSc member_default_values_cache.clear(); _signals.clear(); + members_cache.push_back(get_class_category()); + for (int i = 0; i < c->members.size(); i++) { const GDScriptParser::ClassNode::Member &member = c->members[i]; @@ -728,6 +737,9 @@ bool GDScript::_update_exports(bool *r_err, bool p_recursive_call, PlaceHolderSc } _signals[member.signal->identifier->name] = parameters_names; } break; + case GDScriptParser::ClassNode::Member::GROUP: { + members_cache.push_back(member.annotation->export_info); + } break; default: break; // Nothing. } @@ -1510,11 +1522,17 @@ void GDScriptInstance::get_property_list(List<PropertyInfo> *p_properties) const props.push_front(sptr->member_info[msort[i].name]); } - sptr = sptr->_base; - } +#ifdef TOOLS_ENABLED + p_properties->push_back(sptr->get_class_category()); +#endif // TOOLS_ENABLED + + for (const PropertyInfo &prop : props) { + p_properties->push_back(prop); + } + + props.clear(); - for (const PropertyInfo &E : props) { - p_properties->push_back(E); + sptr = sptr->_base; } } diff --git a/modules/gltf/SCsub b/modules/gltf/SCsub index 6634d5df7b..71f3ba58d9 100644 --- a/modules/gltf/SCsub +++ b/modules/gltf/SCsub @@ -5,7 +5,7 @@ Import("env_modules") env_gltf = env_modules.Clone() -# Godot's own source files +# Godot source files env_gltf.add_source_files(env.modules_sources, "*.cpp") env_gltf.add_source_files(env.modules_sources, "extensions/*.cpp") env_gltf.add_source_files(env.modules_sources, "structures/*.cpp") diff --git a/modules/gridmap/SCsub b/modules/gridmap/SCsub index 52777235b8..da3f7d4dd9 100644 --- a/modules/gridmap/SCsub +++ b/modules/gridmap/SCsub @@ -5,7 +5,7 @@ Import("env_modules") env_gridmap = env_modules.Clone() -# Godot's own source files +# Godot source files env_gridmap.add_source_files(env.modules_sources, "*.cpp") if env["tools"]: env_gridmap.add_source_files(env.modules_sources, "editor/*.cpp") diff --git a/modules/hdr/SCsub b/modules/hdr/SCsub index a709397c9a..10629bda3c 100644 --- a/modules/hdr/SCsub +++ b/modules/hdr/SCsub @@ -5,5 +5,5 @@ Import("env_modules") env_hdr = env_modules.Clone() -# Godot's own source files +# Godot source files env_hdr.add_source_files(env.modules_sources, "*.cpp") diff --git a/modules/minimp3/SCsub b/modules/minimp3/SCsub index f4d1605d55..20e3165f38 100644 --- a/modules/minimp3/SCsub +++ b/modules/minimp3/SCsub @@ -13,5 +13,5 @@ if not env.msvc: else: env_minimp3.Prepend(CPPPATH=[thirdparty_dir]) -# Godot's own source files +# Godot source files env_minimp3.add_source_files(env.modules_sources, "*.cpp") diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index c7279be97f..475b483d6c 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -1801,9 +1801,7 @@ void CSharpInstance::get_event_signals_state_for_reloading(List<Pair<StringName, void CSharpInstance::get_property_list(List<PropertyInfo> *p_properties) const { List<PropertyInfo> props; - for (const KeyValue<StringName, PropertyInfo> &E : script->member_info) { - props.push_front(E.value); - } + script->get_script_property_list(&props); // Call _get_property_list @@ -2335,10 +2333,6 @@ void CSharpScript::_placeholder_erased(PlaceHolderScriptInstance *p_placeholder) #ifdef TOOLS_ENABLED void CSharpScript::_update_exports_values(HashMap<StringName, Variant> &values, List<PropertyInfo> &propnames) { - if (base_cache.is_valid()) { - base_cache->_update_exports_values(values, propnames); - } - for (const KeyValue<StringName, Variant> &E : exported_members_defval_cache) { values[E.key] = E.value; } @@ -2346,6 +2340,10 @@ void CSharpScript::_update_exports_values(HashMap<StringName, Variant> &values, for (const PropertyInfo &prop_info : exported_members_cache) { propnames.push_back(prop_info); } + + if (base_cache.is_valid()) { + base_cache->_update_exports_values(values, propnames); + } } void CSharpScript::_update_member_info_no_exports() { @@ -2357,6 +2355,7 @@ void CSharpScript::_update_member_info_no_exports() { member_info.clear(); GDMonoClass *top = script_class; + List<PropertyInfo> props; while (top && top != native) { PropertyInfo prop_info; @@ -2371,7 +2370,7 @@ void CSharpScript::_update_member_info_no_exports() { StringName member_name = field->get_name(); member_info[member_name] = prop_info; - exported_members_cache.push_front(prop_info); + props.push_front(prop_info); exported_members_defval_cache[member_name] = Variant(); } } @@ -2385,11 +2384,18 @@ void CSharpScript::_update_member_info_no_exports() { StringName member_name = property->get_name(); member_info[member_name] = prop_info; - exported_members_cache.push_front(prop_info); + props.push_front(prop_info); exported_members_defval_cache[member_name] = Variant(); } } + exported_members_cache.push_back(PropertyInfo(Variant::NIL, top->get_name(), PROPERTY_HINT_NONE, get_path(), PROPERTY_USAGE_CATEGORY)); + for (const PropertyInfo &E : props) { + exported_members_cache.push_back(E); + } + + props.clear(); + top = top->get_parent_class(); } } @@ -2464,6 +2470,7 @@ bool CSharpScript::_update_exports(PlaceHolderScriptInstance *p_instance_to_upda #endif GDMonoClass *top = script_class; + List<PropertyInfo> props; while (top && top != native) { PropertyInfo prop_info; @@ -2482,7 +2489,7 @@ bool CSharpScript::_update_exports(PlaceHolderScriptInstance *p_instance_to_upda if (exported) { #ifdef TOOLS_ENABLED if (is_editor) { - exported_members_cache.push_front(prop_info); + props.push_front(prop_info); if (tmp_object) { exported_members_defval_cache[member_name] = GDMonoMarshal::mono_object_to_variant(field->get_value(tmp_object)); @@ -2510,7 +2517,7 @@ bool CSharpScript::_update_exports(PlaceHolderScriptInstance *p_instance_to_upda if (exported) { #ifdef TOOLS_ENABLED if (is_editor) { - exported_members_cache.push_front(prop_info); + props.push_front(prop_info); if (tmp_object) { MonoException *exc = nullptr; MonoObject *ret = property->get_value(tmp_object, &exc); @@ -2531,6 +2538,16 @@ bool CSharpScript::_update_exports(PlaceHolderScriptInstance *p_instance_to_upda } } +#ifdef TOOLS_ENABLED + exported_members_cache.push_back(PropertyInfo(Variant::NIL, top->get_name(), PROPERTY_HINT_NONE, get_path(), PROPERTY_USAGE_CATEGORY)); + + for (const PropertyInfo &E : props) { + exported_members_cache.push_back(E); + } + + props.clear(); +#endif // TOOLS_ENABLED + top = top->get_parent_class(); } @@ -3491,9 +3508,15 @@ Ref<Script> CSharpScript::get_base_script() const { void CSharpScript::get_script_property_list(List<PropertyInfo> *r_list) const { List<PropertyInfo> props; +#ifdef TOOLS_ENABLED + for (const PropertyInfo &E : exported_members_cache) { + props.push_back(E); + } +#else for (const KeyValue<StringName, PropertyInfo> &E : member_info) { props.push_front(E.value); } +#endif // TOOLS_ENABLED for (const PropertyInfo &prop : props) { r_list->push_back(prop); diff --git a/modules/tga/SCsub b/modules/tga/SCsub index 067caa6ea0..ccd7d2ee37 100644 --- a/modules/tga/SCsub +++ b/modules/tga/SCsub @@ -5,5 +5,5 @@ Import("env_modules") env_tga = env_modules.Clone() -# Godot's own source files +# Godot source files env_tga.add_source_files(env.modules_sources, "*.cpp") diff --git a/modules/visual_script/visual_script.cpp b/modules/visual_script/visual_script.cpp index 4215a979e0..73249371cd 100644 --- a/modules/visual_script/visual_script.cpp +++ b/modules/visual_script/visual_script.cpp @@ -1206,6 +1206,10 @@ bool VisualScriptInstance::get(const StringName &p_name, Variant &r_ret) const { } void VisualScriptInstance::get_property_list(List<PropertyInfo> *p_properties) const { +#ifdef TOOLS_ENABLED + p_properties->push_back(script->get_class_category()); +#endif // TOOLS_ENABLED + for (const KeyValue<StringName, VisualScript::Variable> &E : script->variables) { if (!E.value._export) { continue; |