Fixed explosion bugs
parent
2346a59172
commit
fc3bd23f14
17
api.lua
17
api.lua
|
@ -1,4 +1,4 @@
|
|||
-- Mobs Api (19th August 2015)
|
||||
-- Mobs Api (28th August 2015)
|
||||
mobs = {}
|
||||
mobs.mod = "redo"
|
||||
|
||||
|
@ -1312,7 +1312,6 @@ function mobs:explosion(pos, radius, fire, smoke, sound)
|
|||
if not fire then fire = 0 end
|
||||
if not smoke then smoke = 0 end
|
||||
local pos = vector.round(pos)
|
||||
local radius = 1
|
||||
local vm = VoxelManip()
|
||||
local minp, maxp = vm:read_from_map(vector.subtract(pos, radius), vector.add(pos, radius))
|
||||
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
||||
|
@ -1342,8 +1341,10 @@ function mobs:explosion(pos, radius, fire, smoke, sound)
|
|||
p.x = pos.x + x
|
||||
p.y = pos.y + y
|
||||
p.z = pos.z + z
|
||||
if data[vi] ~= c_air and data[vi] ~= c_ignore
|
||||
and data[vi] ~= c_obsidian and data[vi] ~= c_brick
|
||||
if data[vi] ~= c_air
|
||||
and data[vi] ~= c_ignore
|
||||
and data[vi] ~= c_obsidian
|
||||
and data[vi] ~= c_brick
|
||||
and data[vi] ~= c_chest then
|
||||
local n = minetest.get_node(p).name
|
||||
if minetest.get_item_group(n, "unbreakable") ~= 1 then
|
||||
|
@ -1353,9 +1354,13 @@ function mobs:explosion(pos, radius, fire, smoke, sound)
|
|||
local inv = meta:get_inventory()
|
||||
for i = 1,32 do
|
||||
local m_stack = inv:get_stack("main", i)
|
||||
local obj = minetest.add_item(pos, m_stack)
|
||||
local obj = minetest.add_item(p, m_stack)
|
||||
if obj then
|
||||
obj:setvelocity({x = math.random(-2, 2), y = 7, z = math.random(-2, 2)})
|
||||
obj:setvelocity({
|
||||
x = math.random(-2, 2),
|
||||
y = 7,
|
||||
z = math.random(-2, 2)
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue