Alternative code for slipping (#6256)
authorBen Deutsch <ben@bendeutsch.de>
Sat, 26 Aug 2017 07:01:09 +0000 (09:01 +0200)
committerLoïc Blot <nerzhul@users.noreply.github.com>
Sat, 26 Aug 2017 07:01:09 +0000 (09:01 +0200)
commitfc13c00ef3e9b6f280146f3d77b6659fcc55a13c
tree5e1a6712728694ef148a52d5f39ffce482feb77c
parent0e0643df3567437b658431e9dad1e0eec2137a58
Alternative code for slipping (#6256)

* Alternative code for slipping

- does not depend on frame rate
- controllable via environment variables for now

* Adjust slipping speed for item entities too.

* Final version of framerate-independent slippery code

* Remove dead code and fix formatting

* getStandingNodePos should only look 0.05 nodes downwards

This ensures that, even if the player is standing on a partially
filled node, this node is used as the standing node and not the
node below it.

Specific use: enables slippery slabs

* Exchange global getStandingPosNode change for local inline change

Reverts previous commit

* Revert the item movement changes

* Slippery nodes now slip over cliffs and edges

Players no longer suddenly stop before falling off.
Also refactored slippery code into getSlipFactor method.

* Slipping over an edge gated by player's is_slipping state

A new flag for just this case, to reduce costly node lookups in
the normal case of leaning over a non-slippery edge.
Public access for consistency and potential future uses.

* Minor code tweaks / cosmetics

* Add temp variable to improve readability and fix indentation issues
src/localplayer.cpp
src/localplayer.h