move menu pages loader to Lua & add gui.load_document, file.ext(), file.prefix() & add core:gui_util module
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include "engine/Engine.hpp"
|
||||
#include "files/files.hpp"
|
||||
#include "frontend/hud.hpp"
|
||||
#include "frontend/UiDocument.hpp"
|
||||
#include "graphics/render/WorldRenderer.hpp"
|
||||
#include "objects/Player.hpp"
|
||||
#include "lua/libs/api_lua.hpp"
|
||||
@@ -93,3 +94,15 @@ void scripting::load_hud_script(
|
||||
register_event(env, "on_hud_render", packid + ":.hudrender");
|
||||
register_event(env, "on_hud_close", packid + ":.hudclose");
|
||||
}
|
||||
|
||||
gui::PageLoaderFunc scripting::create_page_loader() {
|
||||
auto L = lua::get_main_state();
|
||||
if (lua::getglobal(L, "__vc_page_loader")) {
|
||||
auto func = lua::create_lambda(L);
|
||||
return [func](const std::string& name) -> std::shared_ptr<gui::UINode> {
|
||||
auto docname = func({name}).asString();
|
||||
return engine->getAssets()->require<UiDocument>(docname).getRoot();
|
||||
};
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user