mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-26 12:31:05 +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
|
||||||
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
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -143,8 +143,11 @@ minetest.register_globalstep(function(dtime)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Swimming: Cause exhaustion
|
--[[ 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
|
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
|
local lastPos = playerplus_internal[name].lastPos
|
||||||
if lastPos then
|
if lastPos then
|
||||||
local dist = vector.distance(lastPos, pos)
|
local dist = vector.distance(lastPos, pos)
|
||||||
|
@ -155,6 +158,20 @@ minetest.register_globalstep(function(dtime)
|
||||||
playerplus_internal[name].swimDistance = playerplus_internal[name].swimDistance - superficial
|
playerplus_internal[name].swimDistance = playerplus_internal[name].swimDistance - superficial
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
-- Underwater: Spawn bubble particles
|
-- Underwater: Spawn bubble particles
|
||||||
|
|
Loading…
Reference in a new issue