static duk_ret_t EntityReference_Set_Entity(duk_context* ctx) { EntityReference* thisObj = GetThisValueObject<EntityReference>(ctx, EntityReference_ID); Entity* entity = GetWeakObject<Entity>(ctx, 0); thisObj->Set(entity); return 0; }
void fromScriptValueEntityReference(const QScriptValue &obj, EntityReference &s) { if (obj.isString()) s.ref = obj.toString(); else { if (!obj.property("ref").isValid()) LogError("Can't convert QScriptValue to EntityReference! QScriptValue does not contain ref attribute!"); else { QScriptValue ref = obj.property("ref"); if (ref.isNull()) s.ref = ""; // Empty the reference else if (ref.isString()) s.ref = ref.toString(); else if (ref.isQObject()) { // If the object is an Entity, call EntityReference::Set() with it Entity* entity = dynamic_cast<Entity*>(ref.toQObject()); s.Set(entity); } else if (ref.isNumber() || ref.isVariant()) s.ref = QString::number(ref.toInt32()); else LogError("Can't convert QScriptValue to EntityReference! Ref attribute is not null, string, a number, or an entity"); } } }