void LuaScriptInstance::SetScriptObjectType(const String& scriptObjectType) { if (scriptObjectType == scriptObjectType_) return; ReleaseObject(); WeakPtr<LuaFunction> function = luaScript_->GetFunction("CreateScriptObjectInstance"); if (!function || !function->BeginCall()) return; function->PushLuaTable(scriptObjectType); function->PushUserType((void*)this, "LuaScriptInstance"); // Return script object and attribute names if (!function->EndCall(2)) return; GetScriptAttributes(); scriptObjectType_ = scriptObjectType; scriptObjectRef_ = luaL_ref(luaState_, LUA_REGISTRYINDEX); // Find script object method refs FindScriptObjectMethodRefs(); }