From dbf366eca30ebd8aaf88b79d998528a6968a4028 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 7 Jan 2025 23:49:09 +0300 Subject: [PATCH] fixes --- src/engine/Engine.cpp | 4 +--- src/graphics/ui/GUI.cpp | 9 +++++++++ src/graphics/ui/GUI.hpp | 8 ++++++++ src/graphics/ui/gui_util.cpp | 4 ++-- src/logic/scripting/scripting.cpp | 4 ++-- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 10c9f6df..9b6c55a7 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -125,6 +125,7 @@ Engine::Engine(CoreParameters coreParameters) )); } scripting::initialize(this); + gui->setPageLoader(scripting::create_page_loader()); keepAlive(settings.ui.language.observe([this](auto lang) { setLanguage(lang); }, true)); @@ -441,9 +442,6 @@ void Engine::setScreen(std::shared_ptr screen) { void Engine::setLanguage(std::string locale) { langs::setup(paths.getResourcesFolder(), std::move(locale), contentPacks); - if (gui) { - gui->getMenu()->setPageLoader(scripting::create_page_loader()); - } } void Engine::onWorldOpen(std::unique_ptr level) { diff --git a/src/graphics/ui/GUI.cpp b/src/graphics/ui/GUI.cpp index 2af75903..4285179e 100644 --- a/src/graphics/ui/GUI.cpp +++ b/src/graphics/ui/GUI.cpp @@ -46,6 +46,15 @@ GUI::GUI() : batch2D(std::make_unique(1024)) { GUI::~GUI() = default; +void GUI::setPageLoader(PageLoaderFunc pageLoader) { + this->pagesLoader = std::move(pageLoader); + menu->setPageLoader(this->pagesLoader); +} + +PageLoaderFunc GUI::getPagesLoader() { + return pagesLoader; +} + std::shared_ptr GUI::getMenu() { return menu; } diff --git a/src/graphics/ui/GUI.hpp b/src/graphics/ui/GUI.hpp index 851a49f7..f8cea3ef 100644 --- a/src/graphics/ui/GUI.hpp +++ b/src/graphics/ui/GUI.hpp @@ -51,6 +51,8 @@ namespace gui { class Container; class Menu; + using PageLoaderFunc = std::function(const std::string&)>; + /// @brief The main UI controller class GUI { std::unique_ptr batch2D; @@ -65,6 +67,8 @@ namespace gui { std::shared_ptr menu; std::queue postRunnables; + PageLoaderFunc pagesLoader; + float tooltipTimer = 0.0f; float doubleClickTimer = 0.0f; float doubleClickDelay = 0.5f; @@ -78,6 +82,10 @@ namespace gui { GUI(); ~GUI(); + void setPageLoader(PageLoaderFunc pageLoader); + + PageLoaderFunc getPagesLoader(); + /// @brief Get the main menu (Menu) node std::shared_ptr getMenu(); diff --git a/src/graphics/ui/gui_util.cpp b/src/graphics/ui/gui_util.cpp index 1c442f55..b84dcfd0 100644 --- a/src/graphics/ui/gui_util.cpp +++ b/src/graphics/ui/gui_util.cpp @@ -31,7 +31,7 @@ void guiutil::alert( const std::wstring& text, const runnable& on_hidden ) { - auto panel = std::make_shared(glm::vec2(500, 300), glm::vec4(8.0f), 8.0f); + auto panel = std::make_shared(glm::vec2(500, 300), glm::vec4(4.0f), 4.0f); panel->setColor(glm::vec4(0.0f, 0.0f, 0.0f, 0.5f)); auto menu = engine.getGUI()->getMenu(); @@ -46,7 +46,7 @@ void guiutil::alert( auto label = std::make_shared