#include "menu.h" #include #include #include #include #include #include #include #include "../gui/GUI.h" #include "../gui/containers.h" #include "../gui/controls.h" #include "../screens.h" #include "../../coders/png.h" #include "../../util/stringutil.h" #include "../../files/engine_paths.h" #include "../../files/WorldConverter.h" #include "../../files/WorldFiles.h" #include "../../world/World.h" #include "../../world/WorldGenerators.h" #include "../../world/Level.h" #include "../../window/Events.h" #include "../../window/Window.h" #include "../../engine.h" #include "../../settings.h" #include "../../delegates.h" #include "../../content/Content.h" #include "../../content/ContentLUT.h" #include "../../content/ContentPack.h" #include "../gui/gui_util.h" #include "../locale/langs.h" #include "menu_commons.h" namespace fs = std::filesystem; using namespace gui; namespace menus { std::string generatorID; } inline uint64_t randU64() { srand(time(NULL)); return rand() ^ (rand() << 8) ^ (rand() << 16) ^ (rand() << 24) ^ ((uint64_t)rand() << 32) ^ ((uint64_t)rand() << 40) ^ ((uint64_t)rand() << 56); } void menus::create_version_label(Engine* engine) { auto gui = engine->getGUI(); auto vlabel = std::make_shared( util::str2wstr_utf8(ENGINE_VERSION_STRING " development build ") ); vlabel->setZIndex(1000); vlabel->setColor(glm::vec4(1, 1, 1, 0.5f)); vlabel->setPositionFunc([=]() { return glm::vec2(Window::width-vlabel->getSize().x, 2); }); gui->add(vlabel); } static void show_content_missing( Engine* engine, const Content* content, std::shared_ptr lut ) { auto* gui = engine->getGUI(); auto menu = gui->getMenu(); auto panel = menus::create_page(engine, "missing-content", 500, 0.5f, 8); panel->add(std::make_shared