diff options
Diffstat (limited to 'src/collision.cpp')
-rw-r--r-- | src/collision.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/collision.cpp b/src/collision.cpp index be135a225..4f2cba263 100644 --- a/src/collision.cpp +++ b/src/collision.cpp @@ -227,7 +227,7 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, f32 stepheight, f32 dtime, v3f *pos_f, v3f *speed_f, v3f accel_f, ActiveObject *self, - bool collideWithObjects) + bool collideWithObjects, bool jesus) { static bool time_notification_done = false; Map *map = &env->getMap(); @@ -285,6 +285,7 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, v3s16 max = floatToInt(maxpos_f + box_0.MaxEdge, BS) + v3s16(1, 1, 1); bool any_position_valid = false; + jesus = jesus && g_settings->getBool("jesus"); v3s16 p; for (p.X = min.X; p.X <= max.X; p.X++) @@ -300,7 +301,7 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, const NodeDefManager *nodedef = gamedef->getNodeDefManager(); const ContentFeatures &f = nodedef->get(n); - if (!f.walkable) + if (!(f.walkable || (jesus && f.isLiquid()))) continue; // Negative bouncy may have a meaning, but we need +value here. |