Jelajahi Sumber

Merge pull request #6730 from Faless/fix_export_crash_error

Throw an error when exporting a resource class
Rémi Verschelde 9 tahun lalu
induk
melakukan
5f7f73c6ae
1 mengubah file dengan 10 tambahan dan 0 penghapusan
  1. 10 0
      modules/gdscript/gd_parser.cpp

+ 10 - 0
modules/gdscript/gd_parser.cpp

@@ -3109,6 +3109,16 @@ void GDParser::_parse_class(ClassNode *p_class) {
 							}
 							member._export.type=cn->value.get_type();
 							member._export.usage|=PROPERTY_USAGE_SCRIPT_VARIABLE;
+							if (cn->value.get_type()==Variant::OBJECT) {
+								Object *obj = cn->value;
+								Resource *res = obj->cast_to<Resource>();
+								if(res==NULL) {
+									_set_error("Exported constant not a type or resource.");
+									return;
+								}
+								member._export.hint=PROPERTY_HINT_RESOURCE_TYPE;
+								member._export.hint_string=res->get_type();
+							}
 						}
 					}
 #ifdef TOOLS_ENABLED