diff options
author | MoNTE48 <MoNTE48@mail.ua> | 2019-12-11 20:03:12 +0100 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2020-05-29 22:53:58 +0200 |
commit | 34862a644256f2717923de6d35288114a84acd19 (patch) | |
tree | bf1016c11acb41d023322b6e13843ffae721d9a8 | |
parent | 65a6a316d081d3951438bbbcfce74c9c65db407a (diff) | |
download | minetest-34862a644256f2717923de6d35288114a84acd19.tar.gz minetest-34862a644256f2717923de6d35288114a84acd19.tar.bz2 minetest-34862a644256f2717923de6d35288114a84acd19.zip |
Add disable_jump check for the player's feet
-rw-r--r-- | doc/lua_api.txt | 1 | ||||
-rw-r--r-- | games/devtest/mods/testnodes/properties.lua | 11 | ||||
-rw-r--r-- | src/client/localplayer.cpp | 4 |
3 files changed, 13 insertions, 3 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt index bb9df5373..8c81b7020 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -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 diff --git a/games/devtest/mods/testnodes/properties.lua b/games/devtest/mods/testnodes/properties.lua index e169d4b08..01846a5f0 100644 --- a/games/devtest/mods/testnodes/properties.lua +++ b/games/devtest/mods/testnodes/properties.lua @@ -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"), diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp index c20c3619f..011898bcf 100644 --- a/src/client/localplayer.cpp +++ b/src/client/localplayer.cpp @@ -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 |