Skip to content

Commit

Permalink
Add disable_jump check for the player's feet
Browse files Browse the repository at this point in the history
  • Loading branch information
MoNTE48 authored and sfan5 committed May 29, 2020
1 parent 65a6a31 commit 34862a6
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
1 change: 1 addition & 0 deletions doc/lua_api.txt
Expand Up @@ -1666,6 +1666,7 @@ to games.
* `2`: the node always gets the digging time 0.5 seconds (rail, sign)
* `3`: the node always gets the digging time 0 seconds (torch)
* `disable_jump`: Player (and possibly other things) cannot jump from node
or if their feet are in the node. Note: not supported for `new_move = false`
* `fall_damage_add_percent`: damage speed = `speed * (1 + value/100)`
* `falling_node`: if there is no walkable block under the node it will fall
* `float`: the node will not fall through liquids
Expand Down
11 changes: 9 additions & 2 deletions games/devtest/mods/testnodes/properties.lua
Expand Up @@ -56,11 +56,18 @@ minetest.register_node("testnodes:attached_wallmounted", {
minetest.register_node("testnodes:nojump", {
description = S("Non-jumping Node"),
groups = {disable_jump=1, dig_immediate=3},


tiles = {"testnodes_nojump_top.png", "testnodes_nojump_side.png"},
})

-- Jump disabled plant
minetest.register_node("testnodes:nojump_walkable", {
description = S("Non-jumping Plant Node"),
drawtype = "plantlike",
groups = {disable_jump=1, dig_immediate=3},
walkable = false,
tiles = {"testnodes_nojump_top.png"},
})

-- Climbable up and down with jump and sneak keys
minetest.register_node("testnodes:climbable", {
description = S("Climbable Node"),
Expand Down
4 changes: 3 additions & 1 deletion src/client/localplayer.cpp
Expand Up @@ -436,9 +436,11 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
Check properties of the node on which the player is standing
*/
const ContentFeatures &f = nodemgr->get(map->getNode(m_standing_node));
const ContentFeatures &f1 = nodemgr->get(map->getNode(m_standing_node + v3s16(0, 1, 0)));

// Determine if jumping is possible
m_disable_jump = itemgroup_get(f.groups, "disable_jump");
m_disable_jump = itemgroup_get(f.groups, "disable_jump") ||
itemgroup_get(f1.groups, "disable_jump");
m_can_jump = ((touching_ground && !is_climbing) || sneak_can_jump) && !m_disable_jump;

// Jump key pressed while jumping off from a bouncy block
Expand Down

0 comments on commit 34862a6

Please sign in to comment.