Variant Object::get(const StringName &p_name, bool *r_valid) const { Variant ret; if (script_instance) { if (script_instance->get(p_name, ret)) { if (r_valid) *r_valid = true; return ret; } } //try built-in setgetter { if (ClassDB::get_property(const_cast<Object *>(this), p_name, ret)) { if (r_valid) *r_valid = true; return ret; } } if (p_name == CoreStringNames::get_singleton()->_script) { ret = get_script(); if (r_valid) *r_valid = true; return ret; } else if (p_name == CoreStringNames::get_singleton()->_meta) { ret = metadata; if (r_valid) *r_valid = true; return ret; #ifdef TOOLS_ENABLED } else if (p_name == CoreStringNames::get_singleton()->_sections_unfolded) { Array array; for (Set<String>::Element *E = editor_section_folding.front(); E; E = E->next()) { array.push_back(E->get()); } if (r_valid) *r_valid = true; return array; #endif } else { //something inside the object... :| bool success = _getv(p_name, ret); if (success) { if (r_valid) *r_valid = true; return ret; } //if nothing else, use getvar return getvar(p_name, r_valid); } }
Variant Object::get(const StringName& p_name, bool *r_valid) const{ Variant ret; if (script_instance) { if (script_instance->get(p_name,ret)) { if (r_valid) *r_valid=true; return ret; } } //try built-in setgetter { if (ObjectTypeDB::get_property(const_cast<Object*>(this),p_name,ret)) { if (r_valid) *r_valid=true; return ret; } } if (p_name==CoreStringNames::get_singleton()->_script) { ret = get_script(); if (r_valid) *r_valid=true; return ret; } else if (p_name==CoreStringNames::get_singleton()->_meta) { ret = metadata; if (r_valid) *r_valid=true; return ret; } else { //something inside the object... :| bool success = _getv(p_name,ret); if (success) { if (r_valid) *r_valid=true; return ret; } //if nothing else, use getvar return getvar(p_name,r_valid); } }
//old style get, deprecated Variant Object::get(const String& p_name) const { Variant ret=_getv(p_name); if (ret.get_type()!=Variant::NIL) return ret; bool success; ObjectTypeDB::get_property(const_cast<Object*>(this),p_name,ret,success); if (success) { return ret; } if (p_name=="__meta__") return metadata; else if (p_name=="script/script") return script; if (script_instance) { return script_instance->get(p_name); } return Variant(); }