diff --git a/init.lua b/init.lua index f9f0f31..6d079e6 100644 --- a/init.lua +++ b/init.lua @@ -107,23 +107,27 @@ teleports.set_formspec = function(pos) local node = minetest.get_node(pos) local buttons = ""; - for i, EachTeleport in ipairs( teleports:find_nearby(pos, 5) ) do - if EachTeleport["name"] then - buttons = buttons.."button_exit[3,"..(i)..";4,0.5;tp"..i..";"..F(S("GO>@1",EachTeleport.name)).."]"; - else - buttons = buttons.."button_exit[3,"..(i)..";4,0.5;tp"..i..";"..F(S("GO>@1,@2,@3",EachTeleport.pos.x,EachTeleport.pos.y,EachTeleport.pos.z)).."]"; + local x = 1 + local y = 1 + for i, EachTeleport in ipairs( teleports:find_nearby(pos, 6) ) do + if i == 4 then + x = x + 3.5 + y = 1 end - + if EachTeleport["name"] then + buttons = buttons.."button_exit["..x..","..y..";3.5,0.5;tp"..i..";"..F(S("GO>@1",EachTeleport.name)).."]"; + else + buttons = buttons.."button_exit["..x..","..y..";3.5,0.5;tp"..i..";"..F(S("GO>@1,@2,@3",EachTeleport.pos.x,EachTeleport.pos.y,EachTeleport.pos.z)).."]"; + end + y = y + 1 end - meta:set_string("formspec", "size[8,10;]" + meta:set_string("formspec", "size[8,9;]" .."label[0,0;" .. F(S("Go to available teleports! Use mossy cobblestone as fuel!")) .. "]" .."list[current_name;price;0,1;1,1;]" - ..buttons - - .."button_exit[1,5;2,0.5;cancel;"..F(S("Cancel")).."]" - .."list[current_player;main;0,6;8,4;]") + .."button_exit[1,4;2,0.5;cancel;"..F(S("Cancel")).."]" + .."list[current_player;main;0,5;8,4;]") end teleports.on_receive_fields = function(pos, formname, fields, player) local meta = minetest.env:get_meta(pos); @@ -133,7 +137,7 @@ teleports.on_receive_fields = function(pos, formname, fields, player) if inv:contains_item("price", price) then inv:remove_item("price", price); teleports.lastplayername = "" - local available = teleports:find_nearby(pos, 5) + local available = teleports:find_nearby(pos, 6) if player ~= nil and player:is_player() then local playerpos = player:getpos() if fields.tp1 and #available>0 then @@ -250,7 +254,7 @@ minetest.register_abm({ player = objectsnear[2]; end if player:is_player() and player:get_player_name()~=teleports.lastplayername then - local positions = teleports:find_nearby(pos, 10) + local positions = teleports:find_nearby(pos, 11) if #positions>0 then local key = math.random(1, #positions) local dir, dirmag;