summaryrefslogtreecommitdiff
path: root/builtin/mm_menubar.lua
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2013-07-16 20:56:18 +0200
committerPilzAdam <pilzadam@minetest.net>2013-07-22 18:10:00 +0200
commite3827fbc23d91b65e33a64dc029ff1ab1bf1b48b (patch)
treee232b222a62a085be3f5d15ca98ec7e5ceab63e9 /builtin/mm_menubar.lua
parent5160be91ae6af23cabec5c7412a1c2c45fc46afb (diff)
downloadminetest-e3827fbc23d91b65e33a64dc029ff1ab1bf1b48b.tar.gz
minetest-e3827fbc23d91b65e33a64dc029ff1ab1bf1b48b.tar.bz2
minetest-e3827fbc23d91b65e33a64dc029ff1ab1bf1b48b.zip
Fix background/overlay/footer/header handling
Add missing file headers
Diffstat (limited to 'builtin/mm_menubar.lua')
-rw-r--r--builtin/mm_menubar.lua78
1 files changed, 78 insertions, 0 deletions
diff --git a/builtin/mm_menubar.lua b/builtin/mm_menubar.lua
new file mode 100644
index 000000000..faba92a8f
--- /dev/null
+++ b/builtin/mm_menubar.lua
@@ -0,0 +1,78 @@
+--Minetest
+--Copyright (C) 2013 sapier
+--
+--This program is free software; you can redistribute it and/or modify
+--it under the terms of the GNU Lesser General Public License as published by
+--the Free Software Foundation; either version 2.1 of the License, or
+--(at your option) any later version.
+--
+--This program is distributed in the hope that it will be useful,
+--but WITHOUT ANY WARRANTY; without even the implied warranty of
+--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+--GNU Lesser General Public License for more details.
+--
+--You should have received a copy of the GNU Lesser General Public License along
+--with this program; if not, write to the Free Software Foundation, Inc.,
+--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+menubar = {}
+
+--------------------------------------------------------------------------------
+function menubar.handle_buttons(fields)
+ for i=1,#menubar.buttons,1 do
+ if fields[menubar.buttons[i].btn_name] ~= nil then
+ menu.last_game = menubar.buttons[i].index
+ engine.setting_set("main_menu_last_game_idx",menu.last_game)
+ menu.update_gametype()
+ end
+ end
+end
+
+--------------------------------------------------------------------------------
+function menubar.refresh()
+ menubar.formspec = "box[-0.3,5.625;12.4,1.3;000000]" ..
+ "box[-0.3,5.6;12.4,0.05;FFFFFF]"
+ menubar.buttons = {}
+
+ local button_base = -0.25
+
+ local maxbuttons = #gamemgr.games
+
+ if maxbuttons > 10 then
+ maxbuttons = 10
+ end
+
+ for i=1,maxbuttons,1 do
+
+ local btn_name = "menubar_btn_" .. gamemgr.games[i].id
+ local buttonpos = button_base + (i-1) * 1.245
+ if gamemgr.games[i].menuicon_path ~= nil and
+ gamemgr.games[i].menuicon_path ~= "" then
+
+ menubar.formspec = menubar.formspec ..
+ "image_button[" .. buttonpos .. ",5.7;1.3,1.3;" ..
+ gamemgr.games[i].menuicon_path .. ";" .. btn_name .. ";;true;false]"
+ else
+
+ local part1 = gamemgr.games[i].id:sub(1,5)
+ local part2 = gamemgr.games[i].id:sub(6,10)
+ local part3 = gamemgr.games[i].id:sub(11)
+
+ local text = part1 .. "\n" .. part2
+ if part3 ~= nil and
+ part3 ~= "" then
+ text = text .. "\n" .. part3
+ end
+ menubar.formspec = menubar.formspec ..
+ "image_button[" .. buttonpos .. ",5.7;1.3,1.3;;" ..btn_name ..
+ ";" .. text .. ";true;true]"
+ end
+
+ local toadd = {
+ btn_name = btn_name,
+ index = i,
+ }
+
+ table.insert(menubar.buttons,toadd)
+ end
+end \ No newline at end of file