From a9b21538c48c156d5bdfdd9dfe9e2af93e6b4e3f Mon Sep 17 00:00:00 2001 From: Zeg9 Date: Wed, 26 Jun 2013 20:29:20 +0200 Subject: [PATCH] UI update --- protector/init.lua | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/protector/init.lua b/protector/init.lua index 1292a0c..4ec3dab 100644 --- a/protector/init.lua +++ b/protector/init.lua @@ -3,7 +3,9 @@ -- Released under WTFPL --- TODO use a mesh instead of the buggy wielditem, for protector:display +-- FIXME: use a mesh instead of the buggy wielditem, for protector:display +-- but that isn't possible yet since models won't take care of the texture's alpha channel... + minetest.register_privilege("delprotect","Delete other's protection by sneaking") @@ -60,31 +62,34 @@ protector.generate_formspec = function (meta) formspec = "size[8,8]" .."label[0,0;-- Protector interface --]" .."label[0,.5;Punch the node to show the protected area.]" - .."label[0,1;Add a member:]" - .."field[3,1.33;2,1;protector_add_member;;]" - .."button[5,1;1,1;protector_submit;Ok]" - .."label[0,2;Members (click to remove):]" + .."label[0,2;Current members:]" members = protector.get_member_list(meta) - s = 0 - i = 0 + local npp = 15 -- names per page, for the moment is 4*4 (-1 for the + button) + local s = 0 + local i = 0 for _, member in ipairs(members) do - if s < meta:get_int("page")*16 then s = s +1 else - if i < 16 then + if s < meta:get_int("page")*15 then s = s +1 else + if i < 15 then formspec = formspec .. "button["..(i%4*2)..","..math.floor(i/4+3)..";1.5,.5;protector_member;"..member.."]" formspec = formspec .. "button["..(i%4*2+1.25)..","..math.floor(i/4+3)..";.75,.5;protector_del_member_"..member..";X]" end i = i +1 end end + local add_i = i + if add_i > npp then add_i = npp end + formspec = formspec + .."field["..(add_i%4*2+1/3)..","..(math.floor(add_i/4+3)+1/3)..";1.433,.5;protector_add_member;;]" + .."button["..(add_i%4*2+1.25)..","..math.floor(add_i/4+3)..";.75,.5;protector_submit;+]" if s > 0 then formspec = formspec .. "button[0,7;1,1;protector_page_prev;<<]" end - if i > 16 then + if i > npp then formspec = formspec .. "button[1,7;1,1;protector_page_next;>>]" end - formspec = formspec .. "label[2,7;Page "..(meta:get_int("page")+1).."/"..math.floor((s+i-1)/16+1).."]" + formspec = formspec .. "label[2,7;Page "..(meta:get_int("page")+1).."/"..math.floor((s+i-1)/15+1).."]" return formspec end