Common refactor

This commit is contained in:
MihailRis
2023-12-13 14:18:24 +03:00
parent 4de8759ea2
commit cb13b42960
10 changed files with 31 additions and 201 deletions
+14 -12
View File
@@ -45,6 +45,19 @@ Panel* create_settings_panel(Engine* engine, PagesControl* menu);
Panel* create_pause_panel(Engine* engine, PagesControl* menu);
Panel* create_languages_panel(Engine* engine, PagesControl* menu);
void menus::create_menus(Engine* engine, PagesControl* menu) {
menu->add("new-world", create_new_world_panel(engine, menu));
menu->add("settings", create_settings_panel(engine, menu));
menu->add("controls", create_controls_panel(engine, menu));
menu->add("pause", create_pause_panel(engine, menu));
menu->add("languages", create_languages_panel(engine, menu));
menu->add("main", create_main_menu_panel(engine, menu));
}
void menus::refresh_menus(Engine* engine, PagesControl* menu) {
menu->add("main", create_main_menu_panel(engine, menu));
}
void show_content_missing(GUI* gui, const Content* content, ContentLUT* lut) {
PagesControl* menu = gui->getMenu();
Panel* panel = new Panel(vec2(500, 200), vec4(8.0f), 8.0f);
@@ -98,15 +111,6 @@ void show_convert_request(GUI* gui, const Content* content, ContentLUT* lut,
}, L"", langs::get(L"Cancel"));
}
void create_menus(Engine* engine, PagesControl* menu) {
menu->add("new-world", create_new_world_panel(engine, menu));
menu->add("settings", create_settings_panel(engine, menu));
menu->add("controls", create_controls_panel(engine, menu));
menu->add("pause", create_pause_panel(engine, menu));
menu->add("languages", create_languages_panel(engine, menu));
menu->add("main", create_main_menu_panel(engine, menu));
}
Panel* create_languages_panel(Engine* engine, PagesControl* menu) {
Panel* panel = new Panel(vec2(400, 200), vec4(5.0f), 1.0f);
panel->scrollable(true);
@@ -122,9 +126,7 @@ Panel* create_languages_panel(Engine* engine, PagesControl* menu) {
Button* button = new Button(util::str2wstr_utf8(fullName), vec4(10.f));
button->listenAction([=](GUI*) {
auto resdir = engine->getPaths()->getResources();
langs::setup(resdir, name, engine->getContentPacks());
engine->getSettings().ui.language = name;
create_menus(engine, menu);
engine->setLanguage(name);
menu->back();
});
panel->add(button);
+4 -1
View File
@@ -7,6 +7,9 @@ namespace gui {
class PagesControl;
}
void create_menus(Engine* engine, gui::PagesControl* menu);
namespace menus {
void create_menus(Engine* engine, gui::PagesControl* menu);
void refresh_menus(Engine* engine, gui::PagesControl* menu);
}
#endif // FRONTEND_MENU_H_
+1 -20
View File
@@ -43,9 +43,7 @@ using std::shared_ptr;
MenuScreen::MenuScreen(Engine* engine_) : Screen(engine_) {
auto menu = engine->getGUI()->getMenu();
// Create pages if not created yet
create_menus(engine, menu);
menus::refresh_menus(engine, menu);
menu->reset();
menu->set("main");
@@ -125,23 +123,6 @@ void LevelScreen::updateHotkeys() {
if (Events::jpressed(keycode::F5)) {
level->chunks->saveAndClear();
}
// TODO: remove in v0.16
if (Events::jpressed(keycode::F9)) {
blockid_t woodid = level->content->requireBlock("base:wood")->rt.id;
for (size_t i = 0; i < level->chunks->volume; i++){
Chunk* chunk = level->chunks->chunks[i].get();
if (chunk) {
for (uint i = 0; i < CHUNK_VOL; i++) {
auto& vox = chunk->voxels[i];
if (vox.id == woodid) {
vox.states = BLOCK_DIR_UP;
}
}
}
}
level->chunks->saveAndClear();
}
}
void LevelScreen::update(float delta) {