forked from VoxeLibre/VoxeLibre
Use walkable for entity exposure
This makes TNT do full damage under water.
This commit is contained in:
parent
a62a75c799
commit
a10dff8421
|
@ -25,8 +25,9 @@ local creative_mode = minetest.settings:get_bool("creative_mode")
|
||||||
local sphere_shapes = {}
|
local sphere_shapes = {}
|
||||||
|
|
||||||
-- Saved node definitions in table using cid-keys for faster look-up.
|
-- Saved node definitions in table using cid-keys for faster look-up.
|
||||||
local node_br = {}
|
local node_blastres = {}
|
||||||
local node_on_blast = {}
|
local node_on_blast = {}
|
||||||
|
local node_walkable = {}
|
||||||
|
|
||||||
local AIR_CID = minetest.get_content_id('air')
|
local AIR_CID = minetest.get_content_id('air')
|
||||||
|
|
||||||
|
@ -39,8 +40,9 @@ local N_EXPOSURE_RAYS = 16
|
||||||
minetest.after(0, function()
|
minetest.after(0, function()
|
||||||
-- Store blast resistance values by content ids to improve performance.
|
-- Store blast resistance values by content ids to improve performance.
|
||||||
for name, def in pairs(minetest.registered_nodes) do
|
for name, def in pairs(minetest.registered_nodes) do
|
||||||
node_br[minetest.get_content_id(name)] = def._mcl_blast_resistance or 0
|
node_blastres[minetest.get_content_id(name)] = def._mcl_blast_resistance or 0
|
||||||
node_on_blast[minetest.get_content_id(name)] = def.on_blast
|
node_on_blast[minetest.get_content_id(name)] = def.on_blast
|
||||||
|
node_walkable[minetest.get_content_id(name)] = def.walkable
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -228,7 +230,7 @@ local function trace_explode(pos, strength, raydirs, radius, drop_chance)
|
||||||
npos_x - emin_x + 1
|
npos_x - emin_x + 1
|
||||||
|
|
||||||
local cid = data[idx]
|
local cid = data[idx]
|
||||||
local br = node_br[cid]
|
local br = node_blastres[cid]
|
||||||
local hash = (npos_z + 32768) * 65536 * 65536 +
|
local hash = (npos_z + 32768) * 65536 * 65536 +
|
||||||
(npos_y + 32768) * 65536 +
|
(npos_y + 32768) * 65536 +
|
||||||
npos_x + 32768
|
npos_x + 32768
|
||||||
|
@ -313,9 +315,9 @@ local function trace_explode(pos, strength, raydirs, radius, drop_chance)
|
||||||
|
|
||||||
|
|
||||||
local cid = data[idx]
|
local cid = data[idx]
|
||||||
local br = node_br[cid]
|
local walkable = node_walkable[cid]
|
||||||
|
|
||||||
if br ~= 0 then
|
if walkable then
|
||||||
count = count - 1
|
count = count - 1
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue