languages menu moved to xml + minor refactor

This commit is contained in:
MihailRis
2024-04-13 16:28:06 +03:00
parent f525d82ca8
commit 657b09da9e
12 changed files with 71 additions and 48 deletions
+4 -4
View File
@@ -78,7 +78,7 @@ std::shared_ptr<UINode> create_debug_panel(
L" "+stream.str();
}));
panel->add(create_label([=](){
return L"seed: "+std::to_wstring(level->world->getSeed());
return L"seed: "+std::to_wstring(level->getWorld()->getSeed());
}));
for (int ax = 0; ax < 3; ax++) {
@@ -118,7 +118,7 @@ std::shared_ptr<UINode> create_debug_panel(
}
panel->add(create_label([=](){
int hour, minute, second;
timeutil::from_value(level->world->daytime, hour, minute, second);
timeutil::from_value(level->getWorld()->daytime, hour, minute, second);
std::wstring timeString =
util::lfill(std::to_wstring(hour), 2, L'0') + L":" +
@@ -127,8 +127,8 @@ std::shared_ptr<UINode> create_debug_panel(
}));
{
auto bar = std::make_shared<TrackBar>(0.0f, 1.0f, 1.0f, 0.005f, 8);
bar->setSupplier([=]() {return level->world->daytime;});
bar->setConsumer([=](double val) {level->world->daytime = val;});
bar->setSupplier([=]() {return level->getWorld()->daytime;});
bar->setConsumer([=](double val) {level->getWorld()->daytime = val;});
panel->add(bar);
}
{
+2 -29
View File
@@ -168,33 +168,6 @@ void show_convert_request(
}, L"", langs::get(L"Cancel"));
}
void create_languages_panel(Engine* engine) {
auto menu = engine->getGUI()->getMenu();
auto panel = menus::create_page(engine, "languages", 400, 0.5f, 1);
panel->setScrollable(true);
std::vector<std::string> locales;
for (auto& entry : langs::locales_info) {
locales.push_back(entry.first);
}
std::sort(locales.begin(), locales.end());
for (std::string& name : locales) {
auto& locale = langs::locales_info.at(name);
std::string& fullName = locale.name;
auto button = std::make_shared<Button>(
util::str2wstr_utf8(fullName),
glm::vec4(10.f),
[=](GUI*) {
engine->setLanguage(name);
menu->back();
}
);
panel->add(button);
}
panel->add(guiutil::backButton(menu));
}
void menus::open_world(std::string name, Engine* engine, bool confirmConvert) {
auto paths = engine->getPaths();
auto folder = paths->getWorldsFolder()/fs::u8path(name);
@@ -239,7 +212,7 @@ void menus::open_world(std::string name, Engine* engine, bool confirmConvert) {
} else {
try {
Level* level = World::load(folder, settings, content, packs);
level->world->wfile->createDirectories();
level->getWorld()->wfile->createDirectories();
engine->setScreen(std::make_shared<LevelScreen>(engine, level));
} catch (const world_load_error& error) {
guiutil::alert(
@@ -277,7 +250,7 @@ void menus::create_menus(Engine* engine) {
menus::generatorID = WorldGenerators::getDefaultGeneratorID();
create_new_world_panel(engine);
create_settings_panel(engine);
create_languages_panel(engine);
add_page_loader(engine, "languages");
create_world_generators_panel(engine);
add_page_loader(engine, "main");
load_page(engine, "404");
+1 -1
View File
@@ -174,7 +174,7 @@ void LevelScreen::update(float delta) {
}
if (!hud->isPause()) {
controller->getLevel()->world->updateTimers(delta);
controller->getLevel()->getWorld()->updateTimers(delta);
animator->update(delta);
}
controller->update(delta, !inputLocked, hud->isPause());