diff options
author | HybridDog <ovvv@web.de> | 2019-03-07 08:23:03 +0100 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2019-03-07 08:23:03 +0100 |
commit | 3066d76e33070f0ec598b522b519fd6c1ddaf10e (patch) | |
tree | cc3c982f49fa2c2f612a7cdc70dd48ae52636a54 /builtin | |
parent | bb35d062255ed74f6e1ebe0f7c4714054803b248 (diff) | |
download | minetest-3066d76e33070f0ec598b522b519fd6c1ddaf10e.tar.gz minetest-3066d76e33070f0ec598b522b519fd6c1ddaf10e.tar.bz2 minetest-3066d76e33070f0ec598b522b519fd6c1ddaf10e.zip |
World config: Make depends easier to read (#7396)
* Do not always show every depends textfieds
When there are no dependencies, it does not longer show an empty list.
* Adjust the list height to avoid a scrollbar when possible
* change minimum height and no dependencies message
* Do not get depends for modpacks
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/mainmenu/dlg_config_world.lua | 47 | ||||
-rw-r--r-- | builtin/mainmenu/pkgmgr.lua | 4 |
2 files changed, 40 insertions, 11 deletions
diff --git a/builtin/mainmenu/dlg_config_world.lua b/builtin/mainmenu/dlg_config_world.lua index daa8099c4..97218df9c 100644 --- a/builtin/mainmenu/dlg_config_world.lua +++ b/builtin/mainmenu/dlg_config_world.lua @@ -31,8 +31,6 @@ local function get_formspec(data) "label[0.5,0;" .. fgettext("World:") .. "]" .. "label[1.75,0;" .. data.worldspec.name .. "]" - local hard_deps, soft_deps = pkgmgr.get_dependencies(mod.path) - if mod.is_modpack or mod.type == "game" then local info = minetest.formspec_escape( core.get_content_info(mod.path).description) @@ -46,15 +44,46 @@ local function get_formspec(data) retval = retval .. "textarea[0.25,0.7;5.75,7.2;;" .. info .. ";]" else + local hard_deps, soft_deps = pkgmgr.get_dependencies(mod.path) + local hard_deps_str = table.concat(hard_deps, ",") + local soft_deps_str = table.concat(soft_deps, ",") + retval = retval .. "label[0,0.7;" .. fgettext("Mod:") .. "]" .. - "label[0.75,0.7;" .. mod.name .. "]" .. - "label[0,1.25;" .. fgettext("Dependencies:") .. "]" .. - "textlist[0,1.75;5,2.125;world_config_depends;" .. hard_deps .. - ";0]" .. - "label[0,3.875;" .. fgettext("Optional dependencies:") .. "]" .. - "textlist[0,4.375;5,1.8;world_config_optdepends;" .. - soft_deps .. ";0]" + "label[0.75,0.7;" .. mod.name .. "]" + + if hard_deps_str == "" then + if soft_deps_str == "" then + retval = retval .. + "label[0,1.25;" .. + fgettext("No (optional) dependencies") .. "]" + else + retval = retval .. + "label[0,1.25;" .. fgettext("No hard dependencies") .. + "]" .. + "label[0,1.75;" .. fgettext("Optional dependencies:") .. + "]" .. + "textlist[0,2.25;5,4;world_config_optdepends;" .. + soft_deps_str .. ";0]" + end + else + if soft_deps_str == "" then + retval = retval .. + "label[0,1.25;" .. fgettext("Dependencies:") .. "]" .. + "textlist[0,1.75;5,4;world_config_depends;" .. + hard_deps_str .. ";0]" .. + "label[0,6;" .. fgettext("No optional dependencies") .. "]" + else + retval = retval .. + "label[0,1.25;" .. fgettext("Dependencies:") .. "]" .. + "textlist[0,1.75;5,2.125;world_config_depends;" .. + hard_deps_str .. ";0]" .. + "label[0,3.9;" .. fgettext("Optional dependencies:") .. + "]" .. + "textlist[0,4.375;5,1.8;world_config_optdepends;" .. + soft_deps_str .. ";0]" + end + end end retval = retval .. "button[3.25,7;2.5,0.5;btn_config_world_save;" .. diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua index 60a496093..dee4dabbb 100644 --- a/builtin/mainmenu/pkgmgr.lua +++ b/builtin/mainmenu/pkgmgr.lua @@ -332,11 +332,11 @@ end -------------------------------------------------------------------------------- function pkgmgr.get_dependencies(path) if path == nil then - return "", "" + return {}, {} end local info = core.get_content_info(path) - return table.concat(info.depends or {}, ","), table.concat(info.optional_depends or {}, ",") + return info.depends or {}, info.optional_depends or {} end ----------- tests whether all of the mods in the modpack are enabled ----------- |