Intersects_protection(): Remove from Minetest Game
authorparamat <paramat@users.noreply.github.com>
Sat, 27 Jan 2018 00:52:14 +0000 (00:52 +0000)
committerparamat <mat.gregory@virginmedia.com>
Sat, 3 Feb 2018 03:46:13 +0000 (03:46 +0000)
Add compatibility code with deprecation warning.

mods/default/functions.lua
mods/default/legacy.lua
mods/default/trees.lua

index 20cf492a3f856fae542df3a02895645310c4b9e6..d43ab7b963b6ad409f4a907c0ccdeada83ff8fb1 100644 (file)
@@ -497,46 +497,6 @@ minetest.register_abm({
 })
 
 
---
--- Checks if specified volume intersects a protected volume
---
-
-function default.intersects_protection(minp, maxp, player_name, interval)
-       -- 'interval' is the largest allowed interval for the 3D lattice of checks
-
-       -- Compute the optimal float step 'd' for each axis so that all corners and
-       -- borders are checked. 'd' will be smaller or equal to 'interval'.
-       -- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the
-       -- for loop (which might otherwise not be the case due to rounding errors).
-       local d = {}
-       for _, c in pairs({"x", "y", "z"}) do
-               if maxp[c] > minp[c] then
-                       d[c] = (maxp[c] - minp[c]) / math.ceil((maxp[c] - minp[c]) / interval) - 1e-4
-               elseif maxp[c] == minp[c] then
-                       d[c] = 1 -- Any value larger than 0 to avoid division by zero
-               else -- maxp[c] < minp[c], print error and treat as protection intersected
-                       minetest.log("error", "maxp < minp in 'default.intersects_protection()'")
-                       return true
-               end
-       end
-
-       for zf = minp.z, maxp.z, d.z do
-               local z = math.floor(zf + 0.5)
-               for yf = minp.y, maxp.y, d.y do
-                       local y = math.floor(yf + 0.5)
-                       for xf = minp.x, maxp.x, d.x do
-                               local x = math.floor(xf + 0.5)
-                               if minetest.is_protected({x = x, y = y, z = z}, player_name) then
-                                       return true
-                               end
-                       end
-               end
-       end
-
-       return false
-end
-
-
 --
 -- Coral death near air
 --
index 0669914c63890efd4dd54d8cf5f14d7ef3e49839..17e30360a7041356d6aff85060fbcce9224bb026 100644 (file)
@@ -37,3 +37,10 @@ end
 
 -- Chests
 default.register_chest = default.chest.register_chest
+
+-- Check for a volume intersecting protection
+function default.intersects_protection(minp, maxp, player_name, interval)
+       minetest.log("warning", "default.intersects_protection() is " ..
+               "deprecated, use minetest.intersects_protection() instead.")
+       minetest.intersects_protection(minp, maxp, player_name, interval)
+end
index 44176d779e0ac482aa55e50cd603f08135931240..2934330d6eadf6bb1805ba8e49503583702602b4 100644 (file)
@@ -490,7 +490,7 @@ function default.sapling_on_place(itemstack, placer, pointed_thing,
                return itemstack
        end
        -- Check tree volume for protection
-       if default.intersects_protection(
+       if minetest.intersects_protection(
                        vector.add(pos, minp_relative),
                        vector.add(pos, maxp_relative),
                        player_name,