diff options
author | PilzAdam <pilzadam@minetest.net> | 2013-06-14 12:04:46 +0000 |
---|---|---|
committer | RealBadAngel <mk@realbadangel.pl> | 2013-07-20 20:43:11 +0200 |
commit | 8cae65978611476d0da215acf61819a905c68267 (patch) | |
tree | 2fec7ef03de8946149c8d118b49ca472e0d048a6 /src/collision.cpp | |
parent | 413f0d0353d49d7baed32540d73cbec99e35658a (diff) | |
download | hax-minetest-server-8cae65978611476d0da215acf61819a905c68267.tar.gz hax-minetest-server-8cae65978611476d0da215acf61819a905c68267.zip |
Add an option to disable object <-> object collision for Lua entities
Diffstat (limited to 'src/collision.cpp')
-rw-r--r-- | src/collision.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/collision.cpp b/src/collision.cpp index 0c67abe8c..76696e90d 100644 --- a/src/collision.cpp +++ b/src/collision.cpp @@ -196,7 +196,9 @@ bool wouldCollideWithCeiling( collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, f32 pos_max_d, const aabb3f &box_0, f32 stepheight, f32 dtime, - v3f &pos_f, v3f &speed_f, v3f &accel_f,ActiveObject* self) + v3f &pos_f, v3f &speed_f, + v3f &accel_f,ActiveObject* self, + bool collideWithObjects) { Map *map = &env->getMap(); //TimeTaker tt("collisionMoveSimple"); @@ -287,6 +289,7 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, } } // tt2 + if(collideWithObjects) { ScopeProfiler sp(g_profiler, "collisionMoveSimple objects avg", SPT_AVG); //TimeTaker tt3("collisionMoveSimple collect object boxes"); @@ -334,7 +337,8 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, if (object != NULL) { aabb3f object_collisionbox; - if (object->getCollisionBox(&object_collisionbox)) + if (object->getCollisionBox(&object_collisionbox) && + object->collideWithObjects()) { cboxes.push_back(object_collisionbox); is_unloaded.push_back(false); |