master
Ginger88895 2015-09-22 07:13:57 +00:00
parent 973ea584a6
commit 9e1c3717a0
3 changed files with 31 additions and 35 deletions

View File

@ -179,33 +179,32 @@ function boom_bettertnt_id(pos, time, player, id)
end end
local storedPoses = {} local storedPoses = {}
local ts = tnt_range * tnt_range
if id~="bettertnt:tnt1" then if id~="bettertnt:tnt1" then
for dx=-tnt_range,tnt_range do for dx=-tnt_range,tnt_range do
for dz=-tnt_range,tnt_range do local zm=(ts-dx*dx)^(1/2.0)
for dy=-tnt_range,tnt_range do for dz=-zm,zm do
local ym=(ts-dx*dx-dz*dz)^(1/2.0)
for dy=-ym,ym do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
---------------------------------------- ----------------------------------------
local dist = (dx^2) + (dy^2) + (dz^2) --local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
dist = dist^(1/2.0) --vector.add(p, dir)
if dist <= tnt_range then ----------------------------------------
--local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} -- local p_node = area:index(p.x, p.y, p.z)
--vector.add(p, dir) -- local d_p_node = nodes[p_node]
---------------------------------------- local node = minetest.get_node(p)
-- local p_node = area:index(p.x, p.y, p.z) local nodename = node.name
-- local d_p_node = nodes[p_node] if is_tnt(nodename)==true then
local node = minetest.get_node(p) minetest.remove_node(p)
local nodename = node.name boom_bettertnt_id(p, 0.5, player, nodename) -- was {x=p.x, y=p.y, z=p.z}
if is_tnt(nodename)==true then elseif nodename~="air" then
minetest.remove_node(p) --if math.abs(dx)<tnt_range and math.abs(dy)<tnt_range and math.abs(dz)<tnt_range then
boom_bettertnt_id(p, 0.5, player, nodename) -- was {x=p.x, y=p.y, z=p.z} minetest.remove_node(p)
elseif nodename~="air" then --elseif pr:next(1,5) <= 4 then
--if math.abs(dx)<tnt_range and math.abs(dy)<tnt_range and math.abs(dz)<tnt_range then -- destroy(p, player, ents)
minetest.remove_node(p) --end
--elseif pr:next(1,5) <= 4 then
-- destroy(p, player, ents)
--end
end
end end
end end
end end

View File

@ -185,6 +185,7 @@ function boom_checkertnt_id(pos, time, player, id)
for dz=-tnt_range,tnt_range do for dz=-tnt_range,tnt_range do
for dy=-tnt_range,tnt_range do for dy=-tnt_range,tnt_range do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local nodename = minetest.get_node(p).name
if is_tnt(nodename)==true then if is_tnt(nodename)==true then
minetest.remove_node(p) minetest.remove_node(p)
boom_checkertnt_id(p, 0.5, player, nodename) -- was {x=p.x, y=p.y, z=p.z} boom_checkertnt_id(p, 0.5, player, nodename) -- was {x=p.x, y=p.y, z=p.z}

View File

@ -165,22 +165,18 @@ function boom_napalmtnt_id(pos, time, player, id)
local storedPoses = {} local storedPoses = {}
local dy = 0 local dy = 0
local ts = tnt_range * tnt_range
for dx=-tnt_range,tnt_range do for dx=-tnt_range,tnt_range do
for dz=-tnt_range,tnt_range do local zm=(ts-dx*dx)^(1/2.0)
for dz=-zm,zm do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
---------------------------------------- local nodename = minetest.get_node(p).name
local dist = (dx^2) + (dy^2) + (dz^2) if is_tnt(nodename)==true then
dist = dist^(1/2.0) minetest.set_node(p,{name="fire:basic_flame"})
if dist <= tnt_range then boom_napalmtnt_id(p, 0.5, player, nodename) -- was {x=p.x, y=p.y, z=p.z}
local node = minetest.get_node(p) else
local nodename = node.name minetest.set_node(p,{name="fire:basic_flame"})
if is_tnt(nodename)==true then
minetest.set_node(p,{name="fire:basic_flame"})
boom_napalmtnt_id(p, 0.5, player, nodename) -- was {x=p.x, y=p.y, z=p.z}
else
minetest.set_node(p,{name="fire:basic_flame"})
end
end end
end end
end end