diff --git a/.gitignore b/.gitignore index 606033f3..72fa6d1a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ Debug/voxel_engine /screenshots /out +/misc /world /worlds/**/* /settings.toml @@ -41,4 +42,4 @@ appimage-build/ *~ /res/content/* -!/res/content/base \ No newline at end of file +!/res/content/base diff --git a/res/layouts/pages/controls.xml b/res/layouts/pages/controls.xml new file mode 100644 index 00000000..62af88b4 --- /dev/null +++ b/res/layouts/pages/controls.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/res/layouts/pages/controls.xml.lua b/res/layouts/pages/controls.xml.lua new file mode 100644 index 00000000..a66e17e3 --- /dev/null +++ b/res/layouts/pages/controls.xml.lua @@ -0,0 +1,25 @@ +function refresh_sensitivity() + document.sensitivity_label.text = string.format( + "%s: %s", + gui.str("Mouse Sensitivity", "settings"), + core.str_setting("camera.sensitivity") + ) +end + +function change_sensitivity(val) + core.set_setting("camera.sensitivity", val) + refresh_sensitivity() +end + +function on_open() + document.sensitivity_track.value = core.get_setting("camera.sensitivity") + refresh_sensitivity() + + local panel = document.bindings_panel + local bindings = core.get_bindings() + for i,name in ipairs(bindings) do + panel:add(gui.template("binding", { + id=name, name=gui.str(name) + })) + end +end diff --git a/res/layouts/pages/generators.xml b/res/layouts/pages/generators.xml index 38722bed..a67d06b8 100644 --- a/res/layouts/pages/generators.xml +++ b/res/layouts/pages/generators.xml @@ -1,3 +1,3 @@ - + diff --git a/res/layouts/templates/binding.xml b/res/layouts/templates/binding.xml new file mode 100644 index 00000000..643bd5aa --- /dev/null +++ b/res/layouts/templates/binding.xml @@ -0,0 +1,4 @@ + + + + diff --git a/res/layouts/templates/pack.xml b/res/layouts/templates/pack.xml index b5304db0..71df1bcf 100644 --- a/res/layouts/templates/pack.xml +++ b/res/layouts/templates/pack.xml @@ -1,4 +1,4 @@ - + @@ -12,7 +12,7 @@ diff --git a/src/frontend/menu/menu_settings.cpp b/src/frontend/menu/menu_settings.cpp index ec793baf..a4af6b9c 100644 --- a/src/frontend/menu/menu_settings.cpp +++ b/src/frontend/menu/menu_settings.cpp @@ -12,50 +12,8 @@ using namespace gui; -static void create_controls_panel(Engine* engine) { - auto menu = engine->getGUI()->getMenu(); - auto panel = menus::create_page(engine, "controls", 400, 0.0f, 1); - - /* Camera sensitivity setting track bar */{ - panel->add(menus::create_label([=]() { - float s = engine->getSettings().camera.sensitivity.get(); - return langs::get(L"Mouse Sensitivity", L"settings")+L": "+ - util::to_wstring(s, 1); - })); - - auto trackbar = std::make_shared(0.1, 10.0, 2.0, 0.1, 4); - trackbar->setSupplier([=]() { - return engine->getSettings().camera.sensitivity.get(); - }); - trackbar->setConsumer([=](double value) { - engine->getSettings().camera.sensitivity = value; - }); - panel->add(trackbar); - } - - auto scrollPanel = std::dynamic_pointer_cast(guiutil::create( - "" - "" - )); - for (auto& entry : Events::bindings){ - std::string bindname = entry.first; - - auto subpanel = std::make_shared(glm::vec2(400, 40), glm::vec4(5.0f), 1.0f); - subpanel->setColor(glm::vec4(0.0f)); - subpanel->setOrientation(Orientation::horizontal); - subpanel->add(std::make_shared(entry.second)); - - auto label = std::make_shared