mirror of
https://github.com/minetest-mods/areas.git
synced 2024-12-25 18:20:39 +01:00
Merge branch 'worldedit_dev' into worldedit
This commit is contained in:
commit
e93e5c0a08
64
pos.lua
64
pos.lua
@ -11,6 +11,17 @@ areas.set_pos = {}
|
|||||||
areas.pos1 = {}
|
areas.pos1 = {}
|
||||||
areas.pos2 = {}
|
areas.pos2 = {}
|
||||||
|
|
||||||
|
function areas.useWorldedit(playerName)
|
||||||
|
if nil ~= worldedit then
|
||||||
|
if nil == playerName then
|
||||||
|
return true
|
||||||
|
elseif minetest.check_player_privs(playerName, {worldedit = true}) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("select_area", {
|
minetest.register_chatcommand("select_area", {
|
||||||
params = "<ID>",
|
params = "<ID>",
|
||||||
description = "Select a area by id.",
|
description = "Select a area by id.",
|
||||||
@ -101,13 +112,13 @@ minetest.register_chatcommand("area_pos", {
|
|||||||
return true, "Select position 2 by punching a node."
|
return true, "Select position 2 by punching a node."
|
||||||
elseif param == "get" then -- Display current area positions
|
elseif param == "get" then -- Display current area positions
|
||||||
local pos1str, pos2str = "Position 1: ", "Position 2: "
|
local pos1str, pos2str = "Position 1: ", "Position 2: "
|
||||||
if areas.pos1[name] then
|
if nil ~= areas:getPos1(name) then
|
||||||
pos1str = pos1str..minetest.pos_to_string(areas.pos1[name])
|
pos1str = pos1str..minetest.pos_to_string(areas:getPos1(name))
|
||||||
else
|
else
|
||||||
pos1str = pos1str.."<not set>"
|
pos1str = pos1str.."<not set>"
|
||||||
end
|
end
|
||||||
if areas.pos2[name] then
|
if nil ~= areas:getPos2(name) then
|
||||||
pos2str = pos2str..minetest.pos_to_string(areas.pos2[name])
|
pos2str = pos2str..minetest.pos_to_string(areas:getPos2(name))
|
||||||
else
|
else
|
||||||
pos2str = pos2str.."<not set>"
|
pos2str = pos2str.."<not set>"
|
||||||
end
|
end
|
||||||
@ -117,24 +128,13 @@ minetest.register_chatcommand("area_pos", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
function areas.useWorldedit(playerName)
|
|
||||||
if worldedit then
|
|
||||||
if nil == playerName then
|
|
||||||
return true;
|
|
||||||
elseif minetest.check_player_privs(playerName, {worldedit = true}) then
|
|
||||||
return true;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return false;
|
|
||||||
end
|
|
||||||
|
|
||||||
function areas:getPos(playerName)
|
function areas:getPos(playerName)
|
||||||
local pos1, pos2 = nil, nil;
|
local pos1, pos2 = nil, nil
|
||||||
if areas.useWorldedit(playerName) then
|
if areas.useWorldedit(playerName) then
|
||||||
pos1, pos2 = worldedit.pos1[playerName], worldedit.pos2[playerName];
|
pos1, pos2 = worldedit.pos1[playerName], worldedit.pos2[playerName]
|
||||||
else
|
else
|
||||||
pos1, pos2 = areas.pos1[playerName], areas.pos2[playerName];
|
pos1, pos2 = areas.pos1[playerName], areas.pos2[playerName]
|
||||||
end
|
end
|
||||||
|
|
||||||
if not (pos1 and pos2) then
|
if not (pos1 and pos2) then
|
||||||
@ -146,10 +146,20 @@ function areas:getPos(playerName)
|
|||||||
return areas:sortPos(pos1, pos2)
|
return areas:sortPos(pos1, pos2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function areas:getPos1(playerName)
|
||||||
|
local pos1, pos2 = areas:getPos(playerName)
|
||||||
|
return pos1
|
||||||
|
end
|
||||||
|
|
||||||
|
function areas:getPos2(playerName)
|
||||||
|
local pos1, pos2 = areas:getPos(playerName)
|
||||||
|
return pos2
|
||||||
|
end
|
||||||
|
|
||||||
function areas:setPos1(playerName, pos)
|
function areas:setPos1(playerName, pos)
|
||||||
if areas.useWorldedit(playerName) then
|
if areas.useWorldedit(playerName) then
|
||||||
worldedit.pos1[playerName] = pos;
|
worldedit.pos1[playerName] = pos
|
||||||
worldedit.mark_pos1(playerName);
|
worldedit.mark_pos1(playerName)
|
||||||
else
|
else
|
||||||
areas.pos1[playerName] = pos
|
areas.pos1[playerName] = pos
|
||||||
areas.markPos1(playerName)
|
areas.markPos1(playerName)
|
||||||
@ -158,8 +168,8 @@ end
|
|||||||
|
|
||||||
function areas:setPos2(playerName, pos)
|
function areas:setPos2(playerName, pos)
|
||||||
if areas.useWorldedit(playerName) then
|
if areas.useWorldedit(playerName) then
|
||||||
worldedit.pos2[playerName] = pos;
|
worldedit.pos2[playerName] = pos
|
||||||
worldedit.mark_pos2(playerName);
|
worldedit.mark_pos2(playerName)
|
||||||
else
|
else
|
||||||
areas.pos2[playerName] = pos
|
areas.pos2[playerName] = pos
|
||||||
areas.markPos2(playerName)
|
areas.markPos2(playerName)
|
||||||
@ -172,21 +182,21 @@ minetest.register_on_punchnode(function(pos, node, puncher)
|
|||||||
-- Currently setting position
|
-- Currently setting position
|
||||||
if name ~= "" and areas.set_pos[name] then
|
if name ~= "" and areas.set_pos[name] then
|
||||||
if areas.set_pos[name] == "pos1" then
|
if areas.set_pos[name] == "pos1" then
|
||||||
areas.pos1[name] = pos
|
areas:setPos1(name, pos)
|
||||||
areas.markPos1(name)
|
areas.markPos1(name)
|
||||||
areas.set_pos[name] = "pos2"
|
areas.set_pos[name] = "pos2"
|
||||||
minetest.chat_send_player(name,
|
minetest.chat_send_player(name,
|
||||||
"Position 1 set to "
|
"Position 1 set to "
|
||||||
..minetest.pos_to_string(pos))
|
..minetest.pos_to_string(pos))
|
||||||
elseif areas.set_pos[name] == "pos1only" then
|
elseif areas.set_pos[name] == "pos1only" then
|
||||||
areas.pos1[name] = pos
|
areas:pos1(name, pos)
|
||||||
areas.markPos1(name)
|
areas.markPos1(name)
|
||||||
areas.set_pos[name] = nil
|
areas.set_pos[name] = nil
|
||||||
minetest.chat_send_player(name,
|
minetest.chat_send_player(name,
|
||||||
"Position 1 set to "
|
"Position 1 set to "
|
||||||
..minetest.pos_to_string(pos))
|
..minetest.pos_to_string(pos))
|
||||||
elseif areas.set_pos[name] == "pos2" then
|
elseif areas.set_pos[name] == "pos2" then
|
||||||
areas.pos2[name] = pos
|
areas:setPos2(name, pos)
|
||||||
areas.markPos2(name)
|
areas.markPos2(name)
|
||||||
areas.set_pos[name] = nil
|
areas.set_pos[name] = nil
|
||||||
minetest.chat_send_player(name,
|
minetest.chat_send_player(name,
|
||||||
@ -214,7 +224,7 @@ end
|
|||||||
|
|
||||||
-- Marks area position 1
|
-- Marks area position 1
|
||||||
areas.markPos1 = function(name)
|
areas.markPos1 = function(name)
|
||||||
local pos = areas.pos1[name]
|
local pos = areas.getPos1(name)
|
||||||
if areas.marker1[name] ~= nil then -- Marker already exists
|
if areas.marker1[name] ~= nil then -- Marker already exists
|
||||||
areas.marker1[name]:remove() -- Remove marker
|
areas.marker1[name]:remove() -- Remove marker
|
||||||
areas.marker1[name] = nil
|
areas.marker1[name] = nil
|
||||||
@ -227,7 +237,7 @@ end
|
|||||||
|
|
||||||
-- Marks area position 2
|
-- Marks area position 2
|
||||||
areas.markPos2 = function(name)
|
areas.markPos2 = function(name)
|
||||||
local pos = areas.pos2[name]
|
local pos = areas.getPos2(name)
|
||||||
if areas.marker2[name] ~= nil then -- Marker already exists
|
if areas.marker2[name] ~= nil then -- Marker already exists
|
||||||
areas.marker2[name]:remove() -- Remove marker
|
areas.marker2[name]:remove() -- Remove marker
|
||||||
areas.marker2[name] = nil
|
areas.marker2[name] = nil
|
||||||
|
Loading…
Reference in New Issue
Block a user