int LuaScript::Loader(lua_State* L) { // Get module name String fileName(luaL_checkstring(L, 1)); #ifdef URHO3D_LUA_RAW_SCRIPT_LOADER // First attempt to load lua script file from the file system // Attempt to load .luc file first, then fall back to .lua LuaScript* lua = ::GetContext(L)->GetSubsystem<LuaScript>(); if (lua->LoadRawFile(fileName + ".luc") || lua->LoadRawFile(fileName + ".lua")) return 1; #endif ResourceCache* cache = ::GetContext(L)->GetSubsystem<ResourceCache>(); // Attempt to get .luc file first LuaFile* lucFile = cache->GetResource<LuaFile>(fileName + ".luc", false); if (lucFile) return lucFile->LoadChunk(L) ? 1 : 0; // Then try to get .lua file. If this also fails, error is logged and // resource not found event is sent LuaFile* luaFile = cache->GetResource<LuaFile>(fileName + ".lua"); if (luaFile) return luaFile->LoadChunk(L) ? 1 : 0; return 0; }
int LuaScript::Loader(lua_State* L) { ResourceCache* cache = ::GetContext(L)->GetSubsystem<ResourceCache>(); // Get module name const char* name = luaL_checkstring(L, 1); // Attempt to get .luc file first. String lucFileName = String(name) + ".luc"; LuaFile* lucFile = cache->GetResource<LuaFile>(lucFileName, false); if (lucFile) return lucFile->LoadChunk(L) ? 1 : 0; // Then try to get .lua file. If this also fails, error is logged and resource not found event is sent String luaFileName = String(name) + ".lua"; LuaFile* luaFile = cache->GetResource<LuaFile>(luaFileName); if (luaFile) return luaFile->LoadChunk(L) ? 1 : 0; return 0; }