From ee7df2c89ab0608c84f8c9390e1ed888dc1f805d Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Thu, 6 Oct 2016 20:24:32 +0200 Subject: Throw an error when exporting a resource class "export var tex = Texture" will now throw an error to avoid crashing the editor: "Exported constant not a type or resource" Fixes #6719 . Closes #6729 --- modules/gdscript/gd_parser.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'modules/gdscript/gd_parser.cpp') diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index 8f4f5ef4ca..c7678b94b2 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -3101,6 +3101,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(); + 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 -- cgit v1.2.3