pause menu moved to xml

This commit is contained in:
MihailRis 2024-04-18 22:37:51 +03:00
parent 64820020f8
commit ef4294ab47
5 changed files with 9 additions and 30 deletions

View File

@ -0,0 +1,8 @@
<panel size='400' color='0' interval='1' context='menu'>
<button onclick='menu:reset()' padding='10'>@Continue</button>
<button onclick='menu.page="content"' padding='10'>@Content</button>
<button onclick='menu.page="settings"' padding='10'>@Settings</button>
<button onclick='core.close_world(true)' padding='10'>
@Save and Quit to Menu
</button>
</panel>

View File

@ -178,8 +178,7 @@ std::shared_ptr<InventoryView> Hud::createHotbar() {
}
Hud::Hud(Engine* engine, LevelFrontend* frontend, Player* player)
: engine(engine),
assets(engine->getAssets()),
: assets(engine->getAssets()),
gui(engine->getGUI()),
frontend(frontend),
player(player)
@ -552,7 +551,6 @@ void Hud::setPause(bool pause) {
auto menu = gui->getMenu();
if (pause) {
menus::create_pause_panel(engine, frontend->getController());
menu->setPage("pause");
} else {
menu->reset();

View File

@ -65,7 +65,6 @@ public:
};
class Hud {
Engine* engine;
Assets* assets;
std::unique_ptr<Camera> uicamera;
gui::GUI* gui;

View File

@ -26,8 +26,6 @@ namespace menus {
// implemented in menu_create_world.cpp
extern void create_world_generators_panel(Engine* engine);
// implemented in menu_pause.cpp
extern void create_pause_panel(Engine* engine, LevelController* controller);
extern std::shared_ptr<gui::Panel> create_packs_panel(
const std::vector<ContentPack>& packs,
Engine* engine,

View File

@ -101,27 +101,3 @@ void menus::add_packs(
controller->saveWorld();
reopen_world(engine, world);
}
void menus::create_pause_panel(Engine* engine, LevelController* controller) {
auto menu = engine->getGUI()->getMenu();
auto panel = create_page(engine, "pause", 400, 0.0f, 1);
panel->add(create_button(L"Continue", glm::vec4(10.0f), glm::vec4(1), [=](GUI*){
menu->reset();
}));
panel->add(create_button(L"Content", glm::vec4(10.0f), glm::vec4(1), [=](GUI*) {
menu->setPage("content");
}));
panel->add(guiutil::gotoButton(L"Settings", "settings", menu));
panel->add(create_button(L"Save and Quit to Menu", glm::vec4(10.f), glm::vec4(1), [=](GUI*){
engine->postRunnable([=]() {
// save world
controller->saveWorld();
// destroy LevelScreen and run quit callbacks
engine->setScreen(nullptr);
// create and go to menu screen
engine->setScreen(std::make_shared<MenuScreen>(engine));
});
}));
}