Merge pull request 'Remove 5.3 check for get_natural_light function' (#2669) from mobs_remove_5.3_light into master

Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/2669
This commit is contained in:
cora 2022-09-19 11:58:42 +00:00
commit 86f9d17dfb

View File

@ -915,23 +915,21 @@ end
-- check if within physical map limits (-30911 to 30927) -- check if within physical map limits (-30911 to 30927)
local within_limits, wmin, wmax = nil, -30913, 30928 local function within_limits(pos, radius)
within_limits = function(pos, radius) local wmin, wmax = -30912, 30928
if mcl_vars then if mcl_vars then
if mcl_vars.mapgen_edge_min and mcl_vars.mapgen_edge_max then if mcl_vars.mapgen_edge_min and mcl_vars.mapgen_edge_max then
wmin, wmax = mcl_vars.mapgen_edge_min, mcl_vars.mapgen_edge_max wmin, wmax = mcl_vars.mapgen_edge_min, mcl_vars.mapgen_edge_max
within_limits = function(pos, radius)
return pos
and (pos.x - radius) > wmin and (pos.x + radius) < wmax
and (pos.y - radius) > wmin and (pos.y + radius) < wmax
and (pos.z - radius) > wmin and (pos.z + radius) < wmax
end end
end end
if radius then
wmin = wmin - radius
wmax = wmax + radius
end end
return pos for _,v in pairs(pos) do
and (pos.x - radius) > wmin and (pos.x + radius) < wmax if v < wmin or v > wmax then return false end
and (pos.y - radius) > wmin and (pos.y + radius) < wmax end
and (pos.z - radius) > wmin and (pos.z + radius) < wmax return true
end end
@ -1025,15 +1023,6 @@ local node_ok = function(pos, fallback)
return minetest.registered_nodes[fallback] return minetest.registered_nodes[fallback]
end end
local function get_light(pos, tod)
if minetest.get_node_or_nil(pos) then
local lightfunc = minetest.get_natural_light or minetest.get_node_light
return lightfunc(pos, tod)
else
return 0
end
end
-- environmental damage (water, lava, fire, light etc.) -- environmental damage (water, lava, fire, light etc.)
local do_env_damage = function(self) local do_env_damage = function(self)
@ -1076,9 +1065,10 @@ local do_env_damage = function(self)
end end
end end
-- Use get_node_light for Minetest version 5.3 where get_natural_light local sunlight = 10
-- does not exist yet. if within_limits(pos,0) then
local sunlight = get_light(pos, self.time_of_day) sunlight = minetest.get_natural_light(pos, self.time_of_day)
end
-- bright light harms mob -- bright light harms mob
if self.light_damage ~= 0 and (sunlight or 0) > 12 then if self.light_damage ~= 0 and (sunlight or 0) > 12 then