mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2025-01-23 16:30:19 +01:00
Updated maptools mod
This commit is contained in:
parent
467815f0d6
commit
0fa535ac68
4
mods/mapfix/LICENSE
Executable file
4
mods/mapfix/LICENSE
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
See http://www.gnu.org/licenses/gpl-3.0.en.html
|
4
mods/mapfix/README.md
Executable file
4
mods/mapfix/README.md
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
mapfix
|
||||||
|
======
|
||||||
|
|
||||||
|
Fix some map errors (flow and light problems)
|
@ -1,19 +1,39 @@
|
|||||||
|
local function mapfix(minp, maxp)
|
||||||
|
local vm = minetest.get_voxel_manip(minp, maxp)
|
||||||
|
vm:update_liquids()
|
||||||
|
vm:write_to_map()
|
||||||
|
vm:update_map()
|
||||||
|
end
|
||||||
|
|
||||||
|
local previous = -math.huge
|
||||||
|
|
||||||
|
local default_size = tonumber(minetest.setting_get("mapfix_default_size")) or 40
|
||||||
|
local max_size = tonumber(minetest.setting_get("mapfix_max_size")) or 50
|
||||||
|
local delay = tonumber(minetest.setting_get("mapfix_delay")) or 15
|
||||||
|
|
||||||
minetest.register_chatcommand("mapfix", {
|
minetest.register_chatcommand("mapfix", {
|
||||||
params = "<size>",
|
params = "<size>",
|
||||||
description = "Recalculate the flowing liquids of a chunk",
|
description = "Recalculate the flowing liquids and the light of a chunk",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local pos = minetest.get_player_by_name(name):getpos()
|
local pos = minetest.get_player_by_name(name):getpos()
|
||||||
local size = tonumber(param) or 40
|
local size = tonumber(param) or 40
|
||||||
if size > 50 and not minetest.check_player_privs(name, {server=true}) then
|
local privs = minetest.check_player_privs(name, {server=true})
|
||||||
return false, "You need the server privilege to exceed the radius of 50 blocks"
|
local time = os.clock()
|
||||||
|
|
||||||
|
if not privs then
|
||||||
|
if size > 50 and not privs then
|
||||||
|
return false, "You need the server privilege to exceed the radius of " .. max_size .. " blocks"
|
||||||
|
elseif time - previous < 15 then
|
||||||
|
return false, "Wait at least " .. delay .. " seconds from the previous \"/mapfix\"."
|
||||||
|
end
|
||||||
|
previous = time
|
||||||
end
|
end
|
||||||
local minp, maxp = {x = math.floor(pos.x - size), y = math.floor(pos.y - size), z = math.floor(pos.z - size)}, {x = math.ceil(pos.x + size), y = math.ceil(pos.y + size), z = math.ceil(pos.z + size)}
|
|
||||||
local vm = minetest.get_voxel_manip()
|
local minp = vector.round(vector.subtract(pos, size - 0.5))
|
||||||
vm:read_from_map(minp, maxp)
|
local maxp = vector.round(vector.add(pos, size + 0.5))
|
||||||
vm:calc_lighting()
|
|
||||||
vm:update_liquids()
|
minetest.log("action", name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size)
|
||||||
vm:write_to_map()
|
mapfix(minp, maxp)
|
||||||
vm:update_map()
|
|
||||||
return true, "Done."
|
return true, "Done."
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user