aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/global_constants.cpp2
-rw-r--r--core/io/resource_format_binary.cpp4
-rw-r--r--core/io/resource_format_xml.cpp4
-rw-r--r--core/object.h3
-rw-r--r--core/object_type_db.cpp9
-rw-r--r--core/object_type_db.h1
6 files changed, 17 insertions, 6 deletions
diff --git a/core/global_constants.cpp b/core/global_constants.cpp
index 87712064a..c5c2081b5 100644
--- a/core/global_constants.cpp
+++ b/core/global_constants.cpp
@@ -483,7 +483,7 @@ static _GlobalConstant _global_constants[]={
BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_CHECKABLE ),
BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_CHECKED ),
BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_INTERNATIONALIZED ),
- BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_BUNDLE ),
+ BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_GROUP ),
BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_CATEGORY ),
BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_STORE_IF_NONZERO ),
BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_STORE_IF_NONONE ),
diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp
index 953192306..5328bb68f 100644
--- a/core/io/resource_format_binary.cpp
+++ b/core/io/resource_format_binary.cpp
@@ -1825,7 +1825,7 @@ void ResourceFormatSaverBinaryInstance::_find_resources(const Variant& p_variant
for(List<PropertyInfo>::Element *E=property_list.front();E;E=E->next()) {
- if (E->get().usage&PROPERTY_USAGE_STORAGE || (bundle_resources && E->get().usage&PROPERTY_USAGE_BUNDLE)) {
+ if (E->get().usage&PROPERTY_USAGE_STORAGE) {
_find_resources(res->get(E->get().name));
}
@@ -2028,7 +2028,7 @@ Error ResourceFormatSaverBinaryInstance::save(const String &p_path,const RES& p_
if (skip_editor && F->get().name.begins_with("__editor"))
continue;
- if (F->get().usage&PROPERTY_USAGE_STORAGE || (bundle_resources && F->get().usage&PROPERTY_USAGE_BUNDLE)) {
+ if (F->get().usage&PROPERTY_USAGE_STORAGE ) {
Property p;
p.name_idx=get_string_index(F->get().name);
p.value=E->get()->get(F->get().name);
diff --git a/core/io/resource_format_xml.cpp b/core/io/resource_format_xml.cpp
index c90adf4f5..7bb9e2efb 100644
--- a/core/io/resource_format_xml.cpp
+++ b/core/io/resource_format_xml.cpp
@@ -2667,7 +2667,7 @@ void ResourceFormatSaverXMLInstance::_find_resources(const Variant& p_variant,bo
PropertyInfo pi=I->get();
- if (pi.usage&PROPERTY_USAGE_STORAGE || (bundle_resources && pi.usage&PROPERTY_USAGE_BUNDLE)) {
+ if (pi.usage&PROPERTY_USAGE_STORAGE) {
Variant v=res->get(I->get().name);
_find_resources(v);
@@ -2811,7 +2811,7 @@ Error ResourceFormatSaverXMLInstance::save(const String &p_path,const RES& p_res
if (skip_editor && PE->get().name.begins_with("__editor"))
continue;
- if (PE->get().usage&PROPERTY_USAGE_STORAGE || (bundle_resources && PE->get().usage&PROPERTY_USAGE_BUNDLE)) {
+ if (PE->get().usage&PROPERTY_USAGE_STORAGE ) {
String name = PE->get().name;
Variant value = res->get(name);
diff --git a/core/object.h b/core/object.h
index 8ed5bcdf2..6dd427bf4 100644
--- a/core/object.h
+++ b/core/object.h
@@ -90,7 +90,7 @@ enum PropertyUsageFlags {
PROPERTY_USAGE_CHECKABLE=16, //used for editing global variables
PROPERTY_USAGE_CHECKED=32, //used for editing global variables
PROPERTY_USAGE_INTERNATIONALIZED=64, //hint for internationalized strings
- PROPERTY_USAGE_BUNDLE=128, //used for optimized bundles
+ PROPERTY_USAGE_GROUP=128, //used for grouping props in the editor
PROPERTY_USAGE_CATEGORY=256,
PROPERTY_USAGE_STORE_IF_NONZERO=512, //only store if nonzero
PROPERTY_USAGE_STORE_IF_NONONE=1024, //only store if false
@@ -115,6 +115,7 @@ enum PropertyUsageFlags {
#define ADD_PROPERTYINZ( m_property, m_setter, m_getter, m_index ) ClassDB::add_property( get_class_static(), (m_property).added_usage(PROPERTY_USAGE_STORE_IF_NONZERO), m_setter, m_getter, m_index )
#define ADD_PROPERTYNO( m_property, m_setter, m_getter ) ClassDB::add_property( get_class_static(), (m_property).added_usage(PROPERTY_USAGE_STORE_IF_NONONE), m_setter, m_getter )
#define ADD_PROPERTYINO( m_property, m_setter, m_getter, m_index ) ClassDB::add_property( get_class_static(), (m_property).added_usage(PROPERTY_USAGE_STORE_IF_NONONE), m_setter, m_getter, m_index )
+#define ADD_GROUP( m_name, m_prefix ) ClassDB::add_property_group( get_class_static(), m_name, m_prefix )
struct PropertyInfo {
diff --git a/core/object_type_db.cpp b/core/object_type_db.cpp
index 498d222a6..208782cc4 100644
--- a/core/object_type_db.cpp
+++ b/core/object_type_db.cpp
@@ -740,6 +740,15 @@ bool ClassDB::get_signal(StringName p_class,StringName p_signal,MethodInfo *r_si
return false;
}
+
+void ClassDB::add_property_group(StringName p_class,const String& p_name,const String& p_prefix) {
+
+ ClassInfo *type=classes.getptr(p_class);
+ ERR_FAIL_COND(!type);
+
+ type->property_list.push_back(PropertyInfo(Variant::NIL,p_name,PROPERTY_HINT_NONE,p_prefix,PROPERTY_USAGE_GROUP));
+}
+
void ClassDB::add_property(StringName p_class,const PropertyInfo& p_pinfo, const StringName& p_setter, const StringName& p_getter, int p_index) {
diff --git a/core/object_type_db.h b/core/object_type_db.h
index ca52f6ca8..637101157 100644
--- a/core/object_type_db.h
+++ b/core/object_type_db.h
@@ -476,6 +476,7 @@ public:
static bool get_signal(StringName p_class,StringName p_signal,MethodInfo *r_signal);
static void get_signal_list(StringName p_class,List<MethodInfo> *p_signals,bool p_no_inheritance=false);
+ static void add_property_group(StringName p_class,const String& p_name,const String& p_prefix="");
static void add_property(StringName p_class,const PropertyInfo& p_pinfo, const StringName& p_setter, const StringName& p_getter, int p_index=-1);
static void get_property_list(StringName p_class, List<PropertyInfo> *p_list, bool p_no_inheritance=false, const Object *p_validator=NULL);
static bool set_property(Object* p_object, const StringName& p_property, const Variant& p_value, bool *r_valid=NULL);