Use manual move_to to account for move_to interpolation issues
This commit is contained in:
parent
61e812e40a
commit
1cbd3a998d
|
@ -106,8 +106,8 @@ minetest.register_globalstep(function(dtime)
|
||||||
object:get_luaentity().target = checkpos
|
object:get_luaentity().target = checkpos
|
||||||
object:get_luaentity()._removed = true
|
object:get_luaentity()._removed = true
|
||||||
|
|
||||||
object:set_velocity(vector.multiply(vector.subtract(checkpos, object:get_pos()), 10))
|
object:set_velocity({x=0,y=0,z=0})
|
||||||
object:set_acceleration(vector.multiply(vector.subtract(checkpos, object:get_pos()), 20))
|
object:set_acceleration({x=0,y=0,z=0})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -278,8 +278,6 @@ function minetest.handle_node_drops(pos, drops, digger)
|
||||||
obj:get_luaentity().age = item_drop_settings.dug_buffer
|
obj:get_luaentity().age = item_drop_settings.dug_buffer
|
||||||
|
|
||||||
obj:get_luaentity()._insta_collect = false
|
obj:get_luaentity()._insta_collect = false
|
||||||
|
|
||||||
print(obj:get_luaentity().age)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -518,16 +516,20 @@ minetest.register_entity(":__builtin:item", {
|
||||||
self.object:set_properties({
|
self.object:set_properties({
|
||||||
physical = false
|
physical = false
|
||||||
})
|
})
|
||||||
|
|
||||||
|
self.object:set_velocity({x=0,y=0,z=0})
|
||||||
|
self.object:set_acceleration({x=0,y=0,z=0})
|
||||||
|
|
||||||
self.collection_age = self.collection_age + dtime
|
self.collection_age = self.collection_age + dtime
|
||||||
|
|
||||||
if not self.target then
|
if not self.target then
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
else
|
else
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
|
|
||||||
self.object:set_acceleration(vector.multiply(vector.subtract(self.target, pos), 20))
|
self.object:move_to(vector.add(pos, vector.multiply(vector.subtract(self.target, pos), 0.5)))
|
||||||
self.object:set_velocity(vector.multiply(vector.subtract(self.target, pos), 10))
|
|
||||||
|
|
||||||
if self.collection_age >= 0.3 or vector.distance(pos, self.target) <= 0.08 then
|
if self.collection_age >= 1 or vector.distance(pos, self.target) <= 0.06 then
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user