1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-06 19:41:11 +00:00

-Conversion of most properties to a simpler syntax, easier to use by script

-Modified help to display properties

GDScript can still not make use of them, though.
This commit is contained in:
Juan Linietsky
2017-01-04 01:16:14 -03:00
parent 3fae505128
commit b085c40edf
105 changed files with 1858 additions and 1024 deletions

View File

@@ -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;
}
}
@@ -175,6 +178,30 @@ void DocData::generate(bool p_basic_types) {
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;
ClassDB::get_method_list(name,&method_list,true);
method_list.sort();
@@ -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>");

View File

@@ -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;
}