summaryrefslogtreecommitdiff
path: root/src/collision.cpp
diff options
context:
space:
mode:
authorPilzAdam <pilzadam@minetest.net>2013-06-14 12:04:46 +0000
committerRealBadAngel <mk@realbadangel.pl>2013-07-20 20:43:11 +0200
commit8cae65978611476d0da215acf61819a905c68267 (patch)
tree2fec7ef03de8946149c8d118b49ca472e0d048a6 /src/collision.cpp
parent413f0d0353d49d7baed32540d73cbec99e35658a (diff)
downloadminetest-8cae65978611476d0da215acf61819a905c68267.tar.gz
minetest-8cae65978611476d0da215acf61819a905c68267.tar.bz2
minetest-8cae65978611476d0da215acf61819a905c68267.zip
Add an option to disable object <-> object collision for Lua entities
Diffstat (limited to 'src/collision.cpp')
-rw-r--r--src/collision.cpp8
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);