forked from Mirrorlandia_minetest/mod-sneeker
Hack: check that coordinates are numbers before setting new velocity
This commit is contained in:
parent
6c46f8bf7e
commit
84f6c2f3c9
17
init.lua
17
init.lua
@ -101,6 +101,11 @@ def.on_activate = function(self,staticdata)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function isnan(n)
|
||||||
|
return tostring(n) == tostring((-1)^.5)
|
||||||
|
end
|
||||||
|
|
||||||
def.on_step = function(self, dtime)
|
def.on_step = function(self, dtime)
|
||||||
if self.knockback then
|
if self.knockback then
|
||||||
return
|
return
|
||||||
@ -267,7 +272,19 @@ def.on_step = function(self, dtime)
|
|||||||
self.direction = {x=math.sin(self.yaw)*-1,y=0,z=math.cos(self.yaw)}
|
self.direction = {x=math.sin(self.yaw)*-1,y=0,z=math.cos(self.yaw)}
|
||||||
|
|
||||||
local direction = self.direction
|
local direction = self.direction
|
||||||
|
|
||||||
|
-- FIXME: hack
|
||||||
|
local can_set = true
|
||||||
|
for _, c in ipairs({direction.x*2.5, direction.z*2.5}) do
|
||||||
|
if isnan(c) then
|
||||||
|
can_set = false
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if can_set then
|
||||||
self.object:set_velocity({x=direction.x*2.5,y=velocity.y,z=direction.z*2.5})
|
self.object:set_velocity({x=direction.x*2.5,y=velocity.y,z=direction.z*2.5})
|
||||||
|
end
|
||||||
|
|
||||||
-- Jump
|
-- Jump
|
||||||
if self.jump_timer > 0.2 then
|
if self.jump_timer > 0.2 then
|
||||||
|
Loading…
Reference in New Issue
Block a user