[markers] Update

This commit is contained in:
LeMagnesium 2015-11-15 18:10:17 +01:00
parent ab24dc7869
commit 98bf4a6646
4 changed files with 64 additions and 31 deletions

View File

@ -92,22 +92,36 @@ markers.get_area_list_formspec = function(ppos, player, mode, pos, mode_data, se
-- show only areas that do not have parents
elseif( mode=='main_areas' ) then
title = 'All main areas:';
title = 'All main areas withhin '..tostring( markers.AREA_RANGE )..' m:';
tlabel = '*all main areas*';
for id, area in pairs(areas.areas) do
if( not( area.parent )) then
if( not( area.parent )
-- ppos is always available
and( (area.pos1.x >= ppos.x-markers.AREA_RANGE and area.pos1.x <= ppos.x+markers.AREA_RANGE )
or(area.pos2.x >= ppos.x-markers.AREA_RANGE and area.pos2.x <= ppos.x+markers.AREA_RANGE ))
and( (area.pos1.y >= ppos.y-markers.AREA_RANGE and area.pos1.y <= ppos.y+markers.AREA_RANGE )
or(area.pos2.y >= ppos.y-markers.AREA_RANGE and area.pos2.y <= ppos.y+markers.AREA_RANGE ))
and( (area.pos1.z >= ppos.z-markers.AREA_RANGE and area.pos1.z <= ppos.z+markers.AREA_RANGE )
or(area.pos2.z >= ppos.z-markers.AREA_RANGE and area.pos2.z <= ppos.z+markers.AREA_RANGE ))) then
table.insert( id_list, id );
end
end
elseif( mode=='all' ) then
title = 'All areas:';
title = 'All areas withhin '..tostring( markers.AREA_RANGE )..' m:';
tlabel = '*all areas*';
for id, area in pairs(areas.areas) do
table.insert( id_list, id );
if( ( (area.pos1.x >= ppos.x-markers.AREA_RANGE and area.pos1.x <= ppos.x+markers.AREA_RANGE )
or(area.pos2.x >= ppos.x-markers.AREA_RANGE and area.pos2.x <= ppos.x+markers.AREA_RANGE ))
and( (area.pos1.y >= ppos.y-markers.AREA_RANGE and area.pos1.y <= ppos.y+markers.AREA_RANGE )
or(area.pos2.y >= ppos.y-markers.AREA_RANGE and area.pos2.y <= ppos.y+markers.AREA_RANGE ))
and( (area.pos1.z >= ppos.z-markers.AREA_RANGE and area.pos1.z <= ppos.z+markers.AREA_RANGE )
or(area.pos2.z >= ppos.z-markers.AREA_RANGE and area.pos2.z <= ppos.z+markers.AREA_RANGE ))) then
table.insert( id_list, id );
end
end
end
@ -504,9 +518,9 @@ markers.form_input_handler_areas = function( player, formname, fields)
minetest.chat_send_player( pname, 'Area successfully renamed.');
-- shwo the renamed area
formspec = markers.get_area_desc_formspec( menu_data.selected, player, menu_data.pos );
-- change owner the area
elseif( fields.change_owner
and menu_data.selected
@ -666,9 +680,9 @@ markers.form_input_handler_areas = function( player, formname, fields)
formspec = markers.get_area_list_formspec(ppos, player, 'player', menu_data.pos, old_owner, nil );
end
elseif( fields.show_parent
elseif( fields.show_parent
and menu_data.selected
and areas.areas[ menu_data.selected ]
and areas.areas[ menu_data.selected ].parent ) then

36
mods/markers/config.lua Normal file
View File

@ -0,0 +1,36 @@
-- stores up to 4 marker positions for each player
markers.positions = {}
-- store the positions of that many markers for each player (until server restart)
markers.MAX_MARKERS = 50;
-- the protection against digging of the marker by other players expires after this time
markers.EXPIRE_AFTER = 60*60*24;
-- self-protected areas can not get higher than 100 blocks
markers.MAX_HEIGHT = 100;
-- only areas up to this size (in square meters) can be protected
markers.MAX_SIZE = 1024; -- 32m * 32m = 1024 m^2
-- show only areas withhin this range when showing the list of ALL areas
-- (else it does get too crowded on multiplayer servers)
-- set to something >60000 in order to view all areas; set to a smaller
-- value (i.e. 500) on multiplayer servers with many protected areas
if( #areas.areas > 1000 ) then
markers.AREA_RANGE = 100;
elseif( #areas.areas > 100 ) then
markers.AREA_RANGE = 1000;
else
markers.AREA_RANGE = 100000;
end
-- for most cases, the default values ought to work
--markers.AREA_RANGE = 100000;
if( io.open(minetest.get_worldpath().."/markers_settings.txt","r")) then
io.close()
dofile(minetest.get_worldpath().."/markers_settings.txt")
end

View File

@ -5,26 +5,9 @@
markers = {}
-- stores up to 4 marker positions for each player
markers.positions = {}
-- store the positions of that many markers for each player (until server restart)
markers.MAX_MARKERS = 50;
-- the protection against digging of the marker by other players expires after this time
markers.EXPIRE_AFTER = 60*60*24;
-- self-protected areas can not get higher than 100 blocks
markers.MAX_HEIGHT = 100;
-- only areas up to this size (in square meters) can be protected
markers.MAX_SIZE = 1024; -- 32m * 32m = 1024 m^2
dofile(minetest.get_modpath("markers").."/config.lua");
dofile(minetest.get_modpath("markers").."/areas.lua");
dofile(minetest.get_modpath("markers").."/marker_stone.lua");
dofile(minetest.get_modpath("markers").."/land_title_register.lua");
@ -331,8 +314,8 @@ markers.get_marker_formspec = function(player, pos, error_msg)
"button_exit[2,6.0;2,0.5;abort;OK]";
else
formspec = formspec..
'label[0.5,2.0;Buying this area will cost you ]'..
'label[4.7,2.0;'..markers.calculate_area_price_text( coords[1], coords[2], name )..'.]'..
-- 'label[0.5,2.0;Buying this area will cost you ]'..
-- 'label[4.7,2.0;'..markers.calculate_area_price_text( coords[1], coords[2], name )..'.]'..
'label[0.5,3.0;Your area ought to go..]'..
'label[0.5,3.5;this many blocks up:]'..
@ -348,7 +331,7 @@ markers.get_marker_formspec = function(player, pos, error_msg)
"button_exit[2,6.0;2,0.5;abort;Abort]"..
-- code the position in the "Buy area" field
"button_exit[6,6.0;2,0.5;"..minetest.pos_to_string(pos)..";Buy area]";
"button_exit[6,6.0;2,0.5;"..minetest.pos_to_string(pos)..";Protect area]";
end
return formspec;
@ -469,7 +452,7 @@ markers.form_input_handler = function( player, formname, fields)
--- decode the position of the marker (which is hidden in the Buy-buttons name
local pos = {};
for k, v in pairs( fields ) do
if( v == 'Buy area' ) then
if( v == 'Protect area' ) then
pos = minetest.string_to_pos( k );
end
end

@ -1 +1 @@
Subproject commit bbff05d22fab878e6b60ba8ec738dd955ebd1eaa
Subproject commit f8dfc851ec5c45c4799e53fe8ede127d3236bc17