| 510 | } |
| 511 | |
| 512 | int FLuaEnv::LoadFromCustomLoader(lua_State* L) |
| 513 | { |
| 514 | auto& Env = *(FLuaEnv*)lua_touserdata(L, lua_upvalueindex(1)); |
| 515 | if (FUnLuaDelegates::CustomLoadLuaFile.IsBound()) |
| 516 | { |
| 517 | // legacy support |
| 518 | const FString FileName(UTF8_TO_TCHAR(lua_tostring(L, 1))); |
| 519 | TArray<uint8> Data; |
| 520 | FString ChunkName(TEXT("chunk")); |
| 521 | if (FUnLuaDelegates::CustomLoadLuaFile.Execute(Env, FileName, Data, ChunkName)) |
| 522 | { |
| 523 | if (Env.LoadString(Data, ChunkName)) |
| 524 | return 1; |
| 525 | |
| 526 | return luaL_error(L, "file loading from custom loader error"); |
| 527 | } |
| 528 | return 0; |
| 529 | } |
| 530 | |
| 531 | if (Env.CustomLoaders.Num() == 0) |
| 532 | return 0; |
| 533 | |
| 534 | const FString FileName(UTF8_TO_TCHAR(lua_tostring(L, 1))); |
| 535 | |
| 536 | TArray<uint8> Data; |
| 537 | FString ChunkName(TEXT("chunk")); |
| 538 | for (auto& Loader : Env.CustomLoaders) |
| 539 | { |
| 540 | if (!Loader.Execute(Env, FileName, Data, ChunkName)) |
| 541 | continue; |
| 542 | |
| 543 | if (Env.LoadString(Data, ChunkName)) |
| 544 | break; |
| 545 | |
| 546 | return luaL_error(L, "file loading from custom loader error"); |
| 547 | } |
| 548 | |
| 549 | return 1; |
| 550 | } |
| 551 | |
| 552 | int FLuaEnv::LoadFromFileSystem(lua_State* L) |
| 553 | { |
nothing calls this directly
no test coverage detected