From 04d9bd518fea602837f327e05de361712bcc57d0 Mon Sep 17 00:00:00 2001 From: birdlover32767 <162155761+birdlover32767@users.noreply.github.com> Date: Sun, 24 Aug 2025 20:01:56 +0300 Subject: [PATCH] Hide world buttons when a world is not selected (#16414) --- builtin/mainmenu/tab_local.lua | 48 ++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua index 0d0b20ff1..1340424f1 100644 --- a/builtin/mainmenu/tab_local.lua +++ b/builtin/mainmenu/tab_local.lua @@ -167,9 +167,13 @@ local function get_formspec(tabview, name, tabdata) local index = filterlist.get_current_index(menudata.worldlist, tonumber(core.settings:get("mainmenu_last_selected_world"))) + local list = menudata.worldlist:get_list() local world = list and index and list[index] local game + + local is_world_selected = list and list[core.get_textlist_index("sp_worlds") or index] + if world then game = pkgmgr.find_by_gameid(world.gameid) else @@ -183,27 +187,33 @@ local function get_formspec(tabview, name, tabdata) local y = 0.2 local yo = 0.5625 - if disabled_settings["creative_mode"] == nil then - creative = "checkbox[0,"..y..";cb_creative_mode;".. fgettext("Creative Mode") .. ";" .. - dump(core.settings:get_bool("creative_mode")) .. "]" - y = y + yo - end - if disabled_settings["enable_damage"] == nil then - damage = "checkbox[0,"..y..";cb_enable_damage;".. fgettext("Enable Damage") .. ";" .. - dump(core.settings:get_bool("enable_damage")) .. "]" - y = y + yo - end - if disabled_settings["enable_server"] == nil then - host = "checkbox[0,"..y..";cb_server;".. fgettext("Host Server") ..";" .. - dump(core.settings:get_bool("enable_server")) .. "]" - y = y + yo + if is_world_selected then + if disabled_settings["creative_mode"] == nil then + creative = "checkbox[0,"..y..";cb_creative_mode;".. fgettext("Creative Mode") .. ";" .. + dump(core.settings:get_bool("creative_mode")) .. "]" + y = y + yo + end + if disabled_settings["enable_damage"] == nil then + damage = "checkbox[0,"..y..";cb_enable_damage;".. fgettext("Enable Damage") .. ";" .. + dump(core.settings:get_bool("enable_damage")) .. "]" + y = y + yo + end + if disabled_settings["enable_server"] == nil then + host = "checkbox[0,"..y..";cb_server;".. fgettext("Host Server") ..";" .. + dump(core.settings:get_bool("enable_server")) .. "]" + y = y + yo + end end retval = retval .. "container[5.25,4.875]" .. - "button[0,0;3.225,0.8;world_delete;".. fgettext("Delete") .. "]" .. - "button[3.325,0;3.225,0.8;world_configure;".. fgettext("Select Mods") .. "]" .. - "button[6.65,0;3.225,0.8;world_create;".. fgettext("New") .. "]" .. + "button[6.65,0;3.225,0.8;world_create;".. fgettext("New") .. "]" + if is_world_selected then + retval = retval .. + "button[0,0;3.225,0.8;world_delete;".. fgettext("Delete") .. "]" .. + "button[3.325,0;3.225,0.8;world_configure;".. fgettext("Select Mods") .. "]" + end + retval = retval .. "container_end[]" .. "container[0.375,0.375]" .. creative .. @@ -251,7 +261,7 @@ local function get_formspec(tabview, name, tabdata) end retval = retval .. "container_end[]" - else + elseif is_world_selected then retval = retval .. "button[10.1875,5.925;4.9375,0.8;play;" .. fgettext("Play Game") .. "]" end @@ -348,8 +358,6 @@ local function main_button_handler(this, fields, name, tabdata) gamedata.selected_world = menudata.worldlist:get_raw_index(selected) if selected == nil or gamedata.selected_world == 0 then - gamedata.errormessage = - fgettext_ne("No world created or selected!") return true end