diff --git a/res/layouts/pages/content.xml b/res/layouts/pages/content.xml
new file mode 100644
index 00000000..43c0c566
--- /dev/null
+++ b/res/layouts/pages/content.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/res/layouts/pages/content.xml.lua b/res/layouts/pages/content.xml.lua
new file mode 100644
index 00000000..be7be84b
--- /dev/null
+++ b/res/layouts/pages/content.xml.lua
@@ -0,0 +1,17 @@
+function add_pack(packid, packinfo)
+ document.packs_panel:add(gui.template("pack", {
+ id=packid,
+ title=packinfo.title,
+ description=packinfo.description,
+ icon="gui/no_icon",
+ creator=packinfo.creator,
+ remover='0'
+ }))
+end
+
+function on_open()
+ local packs = pack.get_installed()
+ for i,id in ipairs(packs) do
+ add_pack(id, pack.get_info(id))
+ end
+end
diff --git a/res/layouts/templates/pack.xml b/res/layouts/templates/pack.xml
index c5e56d46..b5304db0 100644
--- a/res/layouts/templates/pack.xml
+++ b/res/layouts/templates/pack.xml
@@ -1,15 +1,18 @@
-
diff --git a/src/frontend/menu/menu.cpp b/src/frontend/menu/menu.cpp
index 01854150..a00fe1e3 100644
--- a/src/frontend/menu/menu.cpp
+++ b/src/frontend/menu/menu.cpp
@@ -239,6 +239,7 @@ void menus::create_menus(Engine* engine) {
create_world_generators_panel(engine);
add_page_loader(engine, "main");
add_page_loader(engine, "404");
+ add_page_loader(engine, "content");
}
void menus::refresh_menus(Engine* engine) {
diff --git a/src/frontend/menu/menu_pause.cpp b/src/frontend/menu/menu_pause.cpp
index d288a8c5..3333a2c6 100644
--- a/src/frontend/menu/menu_pause.cpp
+++ b/src/frontend/menu/menu_pause.cpp
@@ -27,8 +27,7 @@ std::shared_ptr create_pack_panel(
) {
auto assets = engine->getAssets();
auto packpanel = std::dynamic_pointer_cast(guiutil::create(
- ""
- ""
+ ""
));
if (callback) {
packpanel->listenAction([=](GUI*) {
@@ -41,25 +40,14 @@ std::shared_ptr create_pack_panel(
: "["+pack.id+"]";
packpanel->add(guiutil::create(
- "" +
- idtext +
+ ""
+ +idtext+
""
));
packpanel->add(guiutil::create(
""+pack.title+""
));
- std::string icon = pack.id+".icon";
- if (assets->getTexture(icon) == nullptr) {
- auto iconfile = pack.folder/fs::path("icon.png");
- if (fs::is_regular_file(iconfile)) {
- auto image = imageio::read(iconfile.string());
- assets->store(Texture::from(image.get()), icon);
- } else {
- icon = "gui/no_icon";
- }
- }
-
if (!pack.creator.empty()) {
packpanel->add(guiutil::create(
""
@@ -74,6 +62,16 @@ std::shared_ptr create_pack_panel(
""
));
+ std::string icon = pack.id+".icon";
+ if (assets->getTexture(icon) == nullptr) {
+ auto iconfile = pack.folder/fs::path("icon.png");
+ if (fs::is_regular_file(iconfile)) {
+ auto image = imageio::read(iconfile.string());
+ assets->store(Texture::from(image.get()), icon);
+ } else {
+ icon = "gui/no_icon";
+ }
+ }
packpanel->add(std::make_shared(icon, glm::vec2(64)), glm::vec2(8));
if (remover && pack.id != "base") {
@@ -238,7 +236,7 @@ void menus::create_pause_panel(Engine* engine, LevelController* controller) {
menu->reset();
}));
panel->add(create_button(L"Content", glm::vec4(10.0f), glm::vec4(1), [=](GUI*) {
- create_content_panel(engine, controller);
+ //create_content_panel(engine, controller);
menu->setPage("content");
}));
panel->add(guiutil::gotoButton(L"Settings", "settings", menu));