Fix auto-sprint while flying/falling.

This commit is contained in:
Aaron Suen 2020-01-25 09:25:24 -05:00
parent 47b09a78e2
commit aaa66958a2

View File

@ -55,13 +55,22 @@ local function fallspeed(player, cached, set)
end end
end end
local function solid(pos)
local node = minetest.get_node(pos)
local def = minetest.registered_items[node.name]
if not def then return true end
return def.liquidtype == "none" and def.walkable
end
local function walkspeed(player, cached, set) local function walkspeed(player, cached, set)
local ctl = player:get_player_control() local ctl = player:get_player_control()
local walking = ctl.up local walking = ctl.up and not ctl.down
if walking and ctl.sneak then if walking and ctl.sneak then
local node = minetest.get_node(player:get_pos()) local pos = player:get_pos()
local def = minetest.registered_items[node.name] if not solid(pos) then
walking = def and def.liquidtype ~= "none" pos.y = pos.y - 1
walking = not solid(pos)
end
end end
local speed = 1.25 local speed = 1.25
if walking and cached.walktime then if walking and cached.walktime then