Browse Source

Merge pull request #5266 from Geequlim/type_exists

Add @GDScript.type_exists
Rémi Verschelde 9 years ago
parent
commit
916e84d08c
2 changed files with 16 additions and 0 deletions
  1. 15 0
      modules/gdscript/gd_functions.cpp
  2. 1 0
      modules/gdscript/gd_functions.h

+ 15 - 0
modules/gdscript/gd_functions.cpp

@@ -87,6 +87,7 @@ const char *GDFunctions::get_func_name(Function p_func) {
 		"funcref",
 		"convert",
 		"typeof",
+		"type_exists",
 		"str",
 		"print",
 		"printt",
@@ -531,6 +532,12 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va
 			VALIDATE_ARG_COUNT(1);
 			r_ret = p_args[0]->get_type();
 
+		} break;
+		case TYPE_EXISTS: {
+
+			VALIDATE_ARG_COUNT(1);
+			r_ret = ObjectTypeDB::type_exists(*p_args[0]);
+
 		} break;
 		case TEXT_STR: {
 
@@ -1126,6 +1133,7 @@ bool GDFunctions::is_deterministic(Function p_func) {
 		case LOGIC_NEAREST_PO2:
 		case TYPE_CONVERT:
 		case TYPE_OF:
+		case TYPE_EXISTS:
 		case TEXT_STR:
 		case COLOR8:
 // enable for debug only, otherwise not desirable - case GEN_RANGE:
@@ -1388,6 +1396,13 @@ MethodInfo GDFunctions::get_info(Function p_func) {
 			mi.return_val.type=Variant::INT;
 			return mi;
 
+		} break;
+		case TYPE_EXISTS: {
+
+			MethodInfo mi("type_exists",PropertyInfo(Variant::STRING,"type"));
+			mi.return_val.type=Variant::BOOL;
+			return mi;
+
 		} break;
 		case TEXT_STR: {
 

+ 1 - 0
modules/gdscript/gd_functions.h

@@ -81,6 +81,7 @@ public:
 		FUNC_FUNCREF,
 		TYPE_CONVERT,
 		TYPE_OF,
+		TYPE_EXISTS,
 		TEXT_STR,
 		TEXT_PRINT,
 		TEXT_PRINT_TABBED,