mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-29 22:11:10 +01:00
Clean up jump exhaustion code a bit
This commit is contained in:
parent
ce3d3e06e9
commit
3cd02e3262
2 changed files with 19 additions and 13 deletions
|
@ -267,17 +267,6 @@ minetest.register_globalstep(function(dtime)
|
|||
end
|
||||
end
|
||||
|
||||
local controls = player:get_player_control()
|
||||
-- Determine if the player is moving
|
||||
if controls.up or controls.down or controls.left or controls.right then
|
||||
-- TODO: Add exhaustion for moving in water
|
||||
end
|
||||
-- Jumping
|
||||
-- FIXME: This is quite hacky and doesn't check if the player is actually jumping
|
||||
if controls.jump then
|
||||
mcl_hunger.exhaust(name, mcl_hunger.EXHAUST_JUMP)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -143,8 +143,11 @@ minetest.register_globalstep(function(dtime)
|
|||
end
|
||||
end
|
||||
|
||||
-- Swimming: Cause exhaustion
|
||||
if minetest.get_item_group(playerplus[name].nod_head, "liquid") ~= 0 or minetest.get_item_group(playerplus[name].nod_feet, "liquid") ~= 0 or minetest.get_item_group(playerplus[name].nod_stand, "liquid") ~= 0 then
|
||||
--[[ Swimming: Cause exhaustion.
|
||||
NOTE: As of 0.4.15, it only counts as swimming when you are with the feet inside the liquid!
|
||||
Head alone does not count. We respect that for now. ]]
|
||||
if minetest.get_item_group(playerplus[name].nod_feet, "liquid") ~= 0 and
|
||||
minetest.get_item_group(playerplus[name].nod_stand, "liquid") ~= 0 then
|
||||
local lastPos = playerplus_internal[name].lastPos
|
||||
if lastPos then
|
||||
local dist = vector.distance(lastPos, pos)
|
||||
|
@ -155,6 +158,20 @@ minetest.register_globalstep(function(dtime)
|
|||
playerplus_internal[name].swimDistance = playerplus_internal[name].swimDistance - superficial
|
||||
end
|
||||
end
|
||||
|
||||
-- Cause buggy exhaustion for jumping
|
||||
elseif not minetest.registered_nodes[playerplus[name].nod_feet].climbable and
|
||||
not minetest.registered_nodes[playerplus[name].nod_stand].climbable then
|
||||
--[[ No exhaustion for “jumping” in a liquid or at a climbable node since those
|
||||
treat the jump key differently. ]]
|
||||
|
||||
-- Cause exhaustion for jumping
|
||||
local controls = player:get_player_control()
|
||||
-- FIXME: This is quite hacky and doesn't check if the player is actually jumping
|
||||
-- FIXME: Sometimes this exhaustion is caused for holding down the jump key on the top of water
|
||||
if controls.jump then
|
||||
mcl_hunger.exhaust(name, mcl_hunger.EXHAUST_JUMP)
|
||||
end
|
||||
end
|
||||
|
||||
-- Underwater: Spawn bubble particles
|
||||
|
|
Loading…
Reference in a new issue