From f5ce1d3fb531e12c85206fccd5093c07b8133cba Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Sun, 12 Jul 2015 12:40:53 +0200 Subject: [PATCH] Updated mapfix's README - Solves part of #117 --- mods/mapfix/README.md | 13 ++++++-- mods/mapfix/init.lua | 78 +++++++++++++++++++++---------------------- 2 files changed, 50 insertions(+), 41 deletions(-) diff --git a/mods/mapfix/README.md b/mods/mapfix/README.md index 39c92423..2ea9d903 100755 --- a/mods/mapfix/README.md +++ b/mods/mapfix/README.md @@ -1,4 +1,13 @@ -mapfix -====== +#mapfix Fix some map errors (flow and light problems) + +![Before](http://i.imgur.com/T3csYME.png) +![After](http://i.imgur.com/d0V0aO7.png) +Look at the water and the jungle trunk at the center. + + +##minetest.conf settings +* mapfix_default_size (by default 40) : size used when omitted +* mapfix_max_size (by default 50) : maximum size allowed for players +* mapfix_delay (by default 15) : minimal delay in seconds between 2 "/mapfix" (to avoid server freezing) \ No newline at end of file diff --git a/mods/mapfix/init.lua b/mods/mapfix/init.lua index f55ece60..4ba394e9 100755 --- a/mods/mapfix/init.lua +++ b/mods/mapfix/init.lua @@ -1,39 +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", { - params = "", - description = "Recalculate the flowing liquids and the light of a chunk", - func = function(name, param) - local pos = minetest.get_player_by_name(name):getpos() - local size = tonumber(param) or 40 - local privs = minetest.check_player_privs(name, {server=true}) - 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 - - local minp = vector.round(vector.subtract(pos, size - 0.5)) - local maxp = vector.round(vector.add(pos, size + 0.5)) - - minetest.log("action", name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size) - mapfix(minp, maxp) - return true, "Done." - end, -}) +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", { + params = "", + description = "Recalculate the flowing liquids and the light of a chunk", + func = function(name, param) + local pos = minetest.get_player_by_name(name):getpos() + local size = tonumber(param) or 40 + local privs = minetest.check_player_privs(name, {server=true}) + 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 + + local minp = vector.round(vector.subtract(pos, size - 0.5)) + local maxp = vector.round(vector.add(pos, size + 0.5)) + + minetest.log("action", name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size) + mapfix(minp, maxp) + return true, "Done." + end, +})