From 9786202b089622dceacb9deb678e6d6938a24719 Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Sun, 2 Dec 2012 12:17:05 +0100 Subject: [PATCH 1/2] Dont sneak while flying --- src/localplayer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 96ddb4bb2..8189e46a5 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -159,7 +159,7 @@ void LocalPlayer::move(f32 dtime, Map &map, f32 pos_max_d, If sneaking, keep in range from the last walked node and don't fall off from it */ - if(control.sneak && m_sneak_node_exists) + if(control.sneak && m_sneak_node_exists && !g_settings->getBool("free_move")) { f32 maxd = 0.5*BS + sneak_max; v3f lwn_f = intToFloat(m_sneak_node, BS); @@ -540,7 +540,7 @@ void LocalPlayer::applyControl(float dtime) // The speed of the player (Y is ignored) if(superspeed) speed = speed.normalize() * walkspeed_max * 5.0; - else if(control.sneak) + else if(control.sneak && !free_move) speed = speed.normalize() * walkspeed_max / 3.0; else speed = speed.normalize() * walkspeed_max; From aa46e5c5e7285a8ac5c9e096a55c3fa02b90280e Mon Sep 17 00:00:00 2001 From: jordan4ibanez Date: Sat, 15 Dec 2012 15:32:17 -0500 Subject: [PATCH 2/2] Fix item entity's collision with nodeboxes --- builtin/item_entity.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/builtin/item_entity.lua b/builtin/item_entity.lua index 2b12764f1..46415e538 100644 --- a/builtin/item_entity.lua +++ b/builtin/item_entity.lua @@ -84,8 +84,9 @@ minetest.register_entity("__builtin:item", { local p = self.object:getpos() p.y = p.y - 0.3 local nn = minetest.env:get_node(p).name - -- If node is not registered or node is walkably solid - if not minetest.registered_nodes[nn] or minetest.registered_nodes[nn].walkable then + -- If node is not registered or node is walkably solid and resting on nodebox + local v = self.object:getvelocity() + if not minetest.registered_nodes[nn] or minetest.registered_nodes[nn].walkable and v.y == 0 then if self.physical_state then self.object:setvelocity({x=0,y=0,z=0}) self.object:setacceleration({x=0, y=0, z=0})