Fixed explosion bugs
This commit is contained in:
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 = {}
|
||||||
mobs.mod = "redo"
|
mobs.mod = "redo"
|
||||||
|
|
||||||
@ -1312,7 +1312,6 @@ function mobs:explosion(pos, radius, fire, smoke, sound)
|
|||||||
if not fire then fire = 0 end
|
if not fire then fire = 0 end
|
||||||
if not smoke then smoke = 0 end
|
if not smoke then smoke = 0 end
|
||||||
local pos = vector.round(pos)
|
local pos = vector.round(pos)
|
||||||
local radius = 1
|
|
||||||
local vm = VoxelManip()
|
local vm = VoxelManip()
|
||||||
local minp, maxp = vm:read_from_map(vector.subtract(pos, radius), vector.add(pos, radius))
|
local minp, maxp = vm:read_from_map(vector.subtract(pos, radius), vector.add(pos, radius))
|
||||||
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
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.x = pos.x + x
|
||||||
p.y = pos.y + y
|
p.y = pos.y + y
|
||||||
p.z = pos.z + z
|
p.z = pos.z + z
|
||||||
if data[vi] ~= c_air and data[vi] ~= c_ignore
|
if data[vi] ~= c_air
|
||||||
and data[vi] ~= c_obsidian and data[vi] ~= c_brick
|
and data[vi] ~= c_ignore
|
||||||
|
and data[vi] ~= c_obsidian
|
||||||
|
and data[vi] ~= c_brick
|
||||||
and data[vi] ~= c_chest then
|
and data[vi] ~= c_chest then
|
||||||
local n = minetest.get_node(p).name
|
local n = minetest.get_node(p).name
|
||||||
if minetest.get_item_group(n, "unbreakable") ~= 1 then
|
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()
|
local inv = meta:get_inventory()
|
||||||
for i = 1,32 do
|
for i = 1,32 do
|
||||||
local m_stack = inv:get_stack("main", i)
|
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
|
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
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user