Fix item entities not dropping when digging below
This commit is contained in:
parent
1d4060f8c7
commit
421b268716
@ -24,6 +24,7 @@ minetest.register_entity(
|
|||||||
|
|
||||||
itemstring = "",
|
itemstring = "",
|
||||||
physical_state = true,
|
physical_state = true,
|
||||||
|
item_magnet = false, -- set by other mod that implements item magnet
|
||||||
|
|
||||||
set_item = function(self, itemstring)
|
set_item = function(self, itemstring)
|
||||||
self.itemstring = itemstring
|
self.itemstring = itemstring
|
||||||
@ -116,6 +117,10 @@ minetest.register_entity(
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if self.item_magnet then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
p.y = p.y - 0.3
|
p.y = p.y - 0.3
|
||||||
local nn = minetest.get_node(p).name
|
local nn = minetest.get_node(p).name
|
||||||
-- If node is not registered or node is walkably solid:
|
-- If node is not registered or node is walkably solid:
|
||||||
|
@ -48,7 +48,7 @@ minetest.register_globalstep(
|
|||||||
for _,object in ipairs(in_radius) do
|
for _,object in ipairs(in_radius) do
|
||||||
if not object:is_player() and object:get_luaentity()
|
if not object:is_player() and object:get_luaentity()
|
||||||
and object:get_luaentity().name == "__builtin:item" and valid(object) then
|
and object:get_luaentity().name == "__builtin:item" and valid(object) then
|
||||||
local pos1 = pos
|
local pos1 = table.copy(pos)
|
||||||
|
|
||||||
pos1.y = pos1.y + 0.2
|
pos1.y = pos1.y + 0.2
|
||||||
|
|
||||||
@ -71,11 +71,10 @@ minetest.register_globalstep(
|
|||||||
vec.y = vec.y*3
|
vec.y = vec.y*3
|
||||||
vec.z = vec.z*3
|
vec.z = vec.z*3
|
||||||
|
|
||||||
|
object:get_luaentity().item_magnet = true
|
||||||
object:set_velocity(vec)
|
object:set_velocity(vec)
|
||||||
|
object:set_properties({ physical = false })
|
||||||
|
|
||||||
object:get_luaentity().physical_state = false
|
|
||||||
|
|
||||||
object:get_luaentity().object:set_properties({physical = false})
|
|
||||||
else
|
else
|
||||||
local lua = object:get_luaentity()
|
local lua = object:get_luaentity()
|
||||||
|
|
||||||
@ -113,10 +112,7 @@ minetest.register_globalstep(
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
object:set_velocity({x = 0, y = object:get_velocity().y, z = 0})
|
object:set_velocity({x = 0, y = object:get_velocity().y, z = 0})
|
||||||
|
object:get_luaentity().item_magnet = false
|
||||||
object:get_luaentity().physical_state = true
|
|
||||||
|
|
||||||
object:get_luaentity().object:set_properties({physical = true})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user