more xml
This commit is contained in:
+11
-22
@@ -44,13 +44,6 @@ namespace menus {
|
|||||||
extern std::string generatorID;
|
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) {
|
void menus::create_version_label(Engine* engine) {
|
||||||
auto gui = engine->getGUI();
|
auto gui = engine->getGUI();
|
||||||
auto vlabel = std::make_shared<gui::Label>(
|
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")));
|
panel->add(std::make_shared<Label>(langs::get(L"menu.missing-content")));
|
||||||
|
|
||||||
auto subpanel = std::dynamic_pointer_cast<Panel>(guiutil::create(
|
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>"
|
||||||
));
|
));
|
||||||
panel->add(subpanel);
|
panel->add(subpanel);
|
||||||
|
|
||||||
for (auto& entry : lut->getMissingContent()) {
|
for (auto& entry : lut->getMissingContent()) {
|
||||||
auto hpanel = std::make_shared<Panel>(glm::vec2(500, 30));
|
std::string contentname = contenttype_name(entry.type);
|
||||||
hpanel->setColor(glm::vec4(0.0f));
|
auto hpanel = std::dynamic_pointer_cast<Panel>(guiutil::create(
|
||||||
hpanel->setOrientation(Orientation::horizontal);
|
"<panel size='500,20' color='0' orientation='horizontal' padding='2'>"
|
||||||
|
"<label color='#80808080'>["+contentname+"]</label>"
|
||||||
auto namelabel = std::make_shared<Label>(util::str2wstr_utf8(entry.name));
|
"<label color='#FF333380'>"+entry.name+"</label>"
|
||||||
namelabel->setColor(glm::vec4(1.0f, 0.2f, 0.2f, 0.5f));
|
"</panel>"
|
||||||
|
));
|
||||||
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);
|
|
||||||
subpanel->add(hpanel);
|
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));
|
std::shared_ptr<ContentLUT> lut (World::checkIndices(folder, content));
|
||||||
if (lut) {
|
if (lut) {
|
||||||
if (lut->hasMissingContent()) {
|
if (lut->hasMissingContent()) {
|
||||||
|
engine->setScreen(std::make_shared<MenuScreen>(engine));
|
||||||
show_content_missing(engine, content, lut);
|
show_content_missing(engine, content, lut);
|
||||||
} else {
|
} else {
|
||||||
if (confirmConvert) {
|
if (confirmConvert) {
|
||||||
@@ -249,13 +238,13 @@ void menus::create_menus(Engine* engine) {
|
|||||||
add_page_loader(engine, "languages");
|
add_page_loader(engine, "languages");
|
||||||
create_world_generators_panel(engine);
|
create_world_generators_panel(engine);
|
||||||
add_page_loader(engine, "main");
|
add_page_loader(engine, "main");
|
||||||
load_page(engine, "404");
|
add_page_loader(engine, "404");
|
||||||
}
|
}
|
||||||
|
|
||||||
void menus::refresh_menus(Engine* engine) {
|
void menus::refresh_menus(Engine* engine) {
|
||||||
create_new_world_panel(engine);
|
create_new_world_panel(engine);
|
||||||
create_world_generators_panel(engine);
|
create_world_generators_panel(engine);
|
||||||
add_page_loader(engine, "main");
|
add_page_loader(engine, "main");
|
||||||
load_page(engine, "404");
|
add_page_loader(engine, "404");
|
||||||
add_page_loader(engine, "settings-audio");
|
add_page_loader(engine, "settings-audio");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ std::shared_ptr<Container> create_pack_panel(
|
|||||||
idtext +
|
idtext +
|
||||||
"</label>"
|
"</label>"
|
||||||
));
|
));
|
||||||
|
packpanel->add(guiutil::create(
|
||||||
auto titlelabel = std::make_shared<Label>(pack.title);
|
"<label pos='78,6'>"+pack.title+"</label>"
|
||||||
packpanel->add(titlelabel, glm::vec2(78, 6));
|
));
|
||||||
|
|
||||||
std::string icon = pack.id+".icon";
|
std::string icon = pack.id+".icon";
|
||||||
if (assets->getTexture(icon) == nullptr) {
|
if (assets->getTexture(icon) == nullptr) {
|
||||||
@@ -62,15 +62,15 @@ std::shared_ptr<Container> create_pack_panel(
|
|||||||
|
|
||||||
if (!pack.creator.empty()) {
|
if (!pack.creator.empty()) {
|
||||||
packpanel->add(guiutil::create(
|
packpanel->add(guiutil::create(
|
||||||
"<label color='#CCFFE5B2' size='300,20' align='right' pos='215,60'>"+
|
"<label color='#CCFFE5B2' size='300,20' align='right' pos='215,60'>"
|
||||||
pack.creator+
|
+pack.creator+
|
||||||
"</label>"
|
"</label>"
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
packpanel->add(guiutil::create(
|
packpanel->add(guiutil::create(
|
||||||
"<label pos='80,28' color='#FFFFFFB2'>" +
|
"<label pos='80,28' color='#FFFFFFB2'>"
|
||||||
pack.description +
|
+pack.description+
|
||||||
"</label>"
|
"</label>"
|
||||||
));
|
));
|
||||||
|
|
||||||
@@ -97,11 +97,10 @@ std::shared_ptr<Panel> menus::create_packs_panel(
|
|||||||
packconsumer callback,
|
packconsumer callback,
|
||||||
packconsumer remover
|
packconsumer remover
|
||||||
){
|
){
|
||||||
auto panel = std::make_shared<Panel>(glm::vec2(550, 200), glm::vec4(5.0f));
|
auto panel = std::dynamic_pointer_cast<Panel>(guiutil::create(
|
||||||
panel->setColor(glm::vec4(1.0f, 1.0f, 1.0f, 0.07f));
|
"<panel size='550,200' interval='5' color='#FFFFFF11' max-length='400' scrollable='true'>"
|
||||||
panel->setMaxLength(400);
|
"</panel>"
|
||||||
panel->setScrollable(true);
|
));
|
||||||
|
|
||||||
for (auto& pack : packs) {
|
for (auto& pack : packs) {
|
||||||
panel->add(create_pack_panel(pack, engine, callback, remover));
|
panel->add(create_pack_panel(pack, engine, callback, remover));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user