Fix formspec overbleeding

master
Wuzzy 2020-09-08 19:38:04 +02:00
parent 27660860a1
commit af08f7a1ad
1 changed files with 17 additions and 13 deletions

View File

@ -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;