Esempio n. 1
0
Object *ObjectTypeDB::instance(const String &p_type) {
	
	TypeInfo *ti;
	{
		OBJTYPE_LOCK;
		ti=types.getptr(p_type);
		ERR_FAIL_COND_V(!ti,NULL);
		ERR_FAIL_COND_V(ti->disabled,NULL);
		ERR_FAIL_COND_V(!ti->creation_func,NULL);
	}

	return ti->creation_func();
}
Esempio n. 2
0
Object *ObjectTypeDB::instance(const StringName &p_type) {

	TypeInfo *ti;
	{
		OBJTYPE_LOCK;
		ti=types.getptr(p_type);
		if (!ti || ti->disabled || !ti->creation_func) {
			if (compat_types.has(p_type)) {
				ti=types.getptr(compat_types[p_type]);
			}
		}
		ERR_FAIL_COND_V(!ti,NULL);
		ERR_FAIL_COND_V(ti->disabled,NULL);
		ERR_FAIL_COND_V(!ti->creation_func,NULL);
	}

	return ti->creation_func();
}