This commit is contained in:
MihailRis
2024-04-16 01:28:55 +03:00
parent cc58ea29bc
commit 04f0d44c23
2 changed files with 22 additions and 34 deletions
+11 -22
View File
@@ -44,13 +44,6 @@ namespace menus {
extern std::string generatorID;
}
static void load_page(Engine* engine, const std::string& name) {
auto menu = engine->getGUI()->getMenu();
auto file = engine->getResPaths()->find("layouts/pages/"+name+".xml");
auto node = UiDocument::readElement(file);
menu->addPage(name, node);
}
void menus::create_version_label(Engine* engine) {
auto gui = engine->getGUI();
auto vlabel = std::make_shared<gui::Label>(
@@ -76,24 +69,19 @@ static void show_content_missing(
panel->add(std::make_shared<Label>(langs::get(L"menu.missing-content")));
auto subpanel = std::dynamic_pointer_cast<Panel>(guiutil::create(
"<panel size='500,100' color='00000080' scrollable='true' max-length='400'>"
"<panel size='480,100' color='#00000080' scrollable='true' max-length='400'>"
"</panel>"
));
panel->add(subpanel);
for (auto& entry : lut->getMissingContent()) {
auto hpanel = std::make_shared<Panel>(glm::vec2(500, 30));
hpanel->setColor(glm::vec4(0.0f));
hpanel->setOrientation(Orientation::horizontal);
auto namelabel = std::make_shared<Label>(util::str2wstr_utf8(entry.name));
namelabel->setColor(glm::vec4(1.0f, 0.2f, 0.2f, 0.5f));
auto contentname = util::str2wstr_utf8(contenttype_name(entry.type));
auto typelabel = std::make_shared<Label>(L"["+contentname+L"]");
typelabel->setColor(glm::vec4(0.5f));
hpanel->add(typelabel);
hpanel->add(namelabel);
std::string contentname = contenttype_name(entry.type);
auto hpanel = std::dynamic_pointer_cast<Panel>(guiutil::create(
"<panel size='500,20' color='0' orientation='horizontal' padding='2'>"
"<label color='#80808080'>["+contentname+"]</label>"
"<label color='#FF333380'>"+entry.name+"</label>"
"</panel>"
));
subpanel->add(hpanel);
}
@@ -193,6 +181,7 @@ void menus::open_world(std::string name, Engine* engine, bool confirmConvert) {
std::shared_ptr<ContentLUT> lut (World::checkIndices(folder, content));
if (lut) {
if (lut->hasMissingContent()) {
engine->setScreen(std::make_shared<MenuScreen>(engine));
show_content_missing(engine, content, lut);
} else {
if (confirmConvert) {
@@ -249,13 +238,13 @@ void menus::create_menus(Engine* engine) {
add_page_loader(engine, "languages");
create_world_generators_panel(engine);
add_page_loader(engine, "main");
load_page(engine, "404");
add_page_loader(engine, "404");
}
void menus::refresh_menus(Engine* engine) {
create_new_world_panel(engine);
create_world_generators_panel(engine);
add_page_loader(engine, "main");
load_page(engine, "404");
add_page_loader(engine, "404");
add_page_loader(engine, "settings-audio");
}